
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로 변환을 진행하였다.