inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지

인공지능은 어디를 보고 있을까? - 설명 가능한 AI(Explainable AI) [CVPR 논문 구현]

register_forward_hook을 활용한 피쳐맵 추출에서 문제가 발생합니다ㅠㅠ

588

김남욱

작성한 질문수 63

0

안녕하세요. 현재 코랩환경에서 파이토치 제공 Mask-RCNN을 활용하고 있습니다. 강의에서 알려주신 Hook를 활용하여 중간 레이어의 피쳐맵을 추출하고자 진행하던 과정에서 문제가 발생하여 질문드립니다ㅠㅠ

모델은 제가 가진 데이터셋에 맞춰 출력층을 바꾸어준 후에 학습을 완료한 상태입니다. 이후 for문을 통해 모델에 여러 입력 이미지들을 넣어주어 이미지별 중간 레이어의 피쳐맵을 얻으려고 하였으나, 출력결과 하나의 이미지에 대한 피쳐맵만 반복적으로 출력되는 문제가 발생합니다...

모델 학습 및 가중치 로드 후 코드는 다음과 같습니다.

Hook 함수

def get_activation(name):
 def hook(models, input, output):
  activation[name] = output
 return hook

입력 이미지별 피쳐맵 저장

activation = {}
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
models.to(device)

for i in range(1, 5):
 test_img = Image.open("입력 이미지 루프").convert('RGB')
 test_img = test_img.resize((800, 800))
 test_img = tr.functional.to_tensor(test_img)
 test_img = test_img.reshape(1, 3, 800, 800)
 with torch.no_grad():
  models.eval()
  models.backbone.fpn.extra_blocks.register_forward_hook(get_activation("fm{}".format(i)))     
  test_img = test_img.to(device)    
  models(test_img)

출력 결과

activation["fm1"] 부터 ["fm4"] 까지 동일한 값이 들어가 있음

아무리 찾아보고 여러 시도를 해보아도 해결이 되지않아 답답하네요ㅠㅠ

추가로 위의 코드를 한번 돌리면 런타임을 다시 시작하지 않는 이상 이후에 코드를 수정하여 hook 함수부터 다시 돌려도 적용이 되지 않는 문제도 발생합니다...

python 머신러닝 딥러닝 인공신경망 pytorch

답변 1

0

딥러닝호형

안녕하세요.

해당 부분만 보고 판단하기 어렵습니다만 개인적으로는 두가지 부분을 확인해 볼 것 같습니다.

(1) 실제로 다른 이미지가 들어가고 있는지 확인합니다.

(2) 우리가 강의에서 배운 코드는 이미지당 model이 재정의 되는데 위 코드는 그렇지 않은 것 같습니다.

코드 비교해 보시고 수정해보시겠어요?

 

감사합니다.

수업자료 제공 부탁드립니다.

0

95

2

코드가 어디에 있는지 모르겠습니다.

0

93

2

논문 구현

0

188

2

overfitting이 나는 이유가 궁금합니다.

1

171

2

분류 성능이 잘 안 나오는 이유

0

217

1

AutoEncoder 차원 질문

1

250

2

사전 학습 모델에서의 layer 변경에 대한 질문

1

221

1

7강 폴더 만들

0

260

1

4-3강 cross-validation에서의 best model 선정 기준

0

450

1

regression 문제에 대한 결과 시각화

0

213

1

Loss function 관련하여 질문드립니다.

0

956

1

early stopping 코드 문의

0

325

1

예측 그래프

0

355

1

데이터 불균형

1

364

1

8강 전이 학습 질문

0

395

2

data의 gpu처리 질문

0

241

1

nn.Linear(1024, 10) 관련 질문드립니다.

0

288

1

학습과 평가시 Loss 함수가 다른 이유

0

249

1

전처리 관련해서 질문 있습니다.

0

225

1

데이터 엔지니어의 역량을 기르려면 어떻게 해야할까요?

0

934

2

역전파 내용 중 미분 관련 질문 드립니다

1

282

1

8강 전이학습에서 kernel size 관련 질문 드립니다.

1

957

1

이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.

1

586

1

14강 데이터 불균형 RandomRotation

1

482

1