RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

조권휘·2024년 3월 15일
0

Error Notes

목록 보기
1/1

Error Message

RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

위 메세지는 현재 tensor를 numpy로 변환할 때, tensor의 상태가 backward 계산을 할 수 있는 requires_grad = True인 상태여서 변환이 불가능한 상태를 의미한다.


layer_output_1.append(lres_input.cpu().numpy())

에러가 발생한 부분의 코드이다. 에러를 해결하기 위해 detach() 함수를 사용한다.
detach() 함수는 현재 backward 계산이 가능한 상태의 tensor에서 grad 계산을 하지 않는 상태의 tensor를 반환해주는 함수이다.


layer_output_1.append(lres_input.detach().cpu().numpy())

수정 후 코드를 확인하면 detach()를 사용하여 gradient 계산을 하지 않는 tensor로 반환한 뒤 numpy로 변환을 진행하였다.

profile
한양대학교 인공지능학과 대학원생 조권휘입니다.

0개의 댓글