반응형
해당 에러는 모델을 돌리는 도중, backpropagation을 진행할 때 모델의 파라미터 shape이 같아야하는데 다를 때 일어나는 것이다.
에러를 어떻게 해결할까!?
일단 위의 system file을 따라서 위의 함수로 들어간다!
if src_tensor is not None and src_tensor.shape != expected_shape:
# NOTE: Gradient shape mismatch is not possible in practice since
# the gradient shape is enforced to match that of the parameter and
# we already check for parameter shape mismatch.
raise RuntimeError(
f"Cannot writeback when the {'parameter' if is_param else 'gradient'} "
f"shape changes\nExpects {expected_shape} but got {src_tensor.shape}"
)
위의 함수에서 해당 코드를 찾으면 에러의 원인을 알 수 있다.
src_tensor()를 shape를 expected_shape로 맞춰줘야 한다.
if src_tensor.shape != expected_shape:
print("Expected shape:",expected_shape)
print("src_tensor shape:",src_tensor.shape)
src_tensor = src_tensor.reshape(-1)
print("src_tensor shape:",src_tensor.shape)
if src_tensor is not None and src_tensor.shape != expected_shape:
# NOTE: Gradient shape mismatch is not possible in practice since
# the gradient shape is enforced to match that of the parameter and
# we already check for parameter shape mismatch.
raise RuntimeError(
f"Cannot writeback when the {'parameter' if is_param else 'gradient'} "
f"shape changes\nExpects {expected_shape} but got {src_tensor.shape}"
)
위의 if문을 넣어서 shape을 바꿔주면 된다!
2023.07.25 Kyujinpy 작성.
반응형