묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
안녕하세요. CAM 연산 때 사용하는 label에 대해서 질문이 있습니다
안녕하세요. 강의 잘 듣고 있습니다 CAM 연산하는 과정에서 의문점이 있어서요. 크게 상관은 없을 것 같은데, 정확하게 CAM 연산을 보려면 모델이 예측한 라벨에 대해서 CAM 연산을 수행하는 것이 맞죠? 코드는 정답 라벨을 가지고 해서, 크게 상관은 없겠지만 의도하신 것이 맞는지 궁금합니다 감사합니다 def cam(model, trainset, img_sample, img_size): model.eval() with torch.no_grad(): # requires_grad 비활성화 model.layer4[1].bn2.register_forward_hook(get_activation('final')) # feature extraction의 마지막 feature map 구하기 data, label = trainset[img_sample] # 이미지 한 장과 라벨 불러오기 data.unsqueeze_(0) # 4차원 3차원 [피쳐수 ,너비, 높이] -> [1,피쳐수 ,너비, 높이] _ = model(data.to(device)) act = activation['final'].squeeze() # 4차원 [1,피쳐수 ,너비, 높이] -> 3차원 [피쳐수 ,너비, 높이] w = model.fc.weight # classifer의 가중치 불러오기 for idx in range(act.size(0)): # CAM 연산 if idx == 0: tmp = act[idx] * w[label][idx] else: tmp += act[idx] * w[label][idx] # 모든 이미지 팍셀값을 0~255로 스케일하기 normalized_cam = tmp.cpu().numpy() normalized_cam = (normalized_cam - np.min(normalized_cam)) / (np.max(normalized_cam) - np.min(normalized_cam)) original_img = np.uint8((data[0][0] / 2 + 0.5) * 255) # 원본 이미지 사이즈로 리사이즈 cam_img = cv2.resize(np.uint8(normalized_cam * 255), dsize=(img_size, img_size)) return cam_img, original_img
-
미해결
opencv 회색
opencv 캠이 회색화면으로 출력됩니다. 해결방법이 궁금합니다.