본문 바로가기
ML

`RuntimeError: expected scalar type Half but found Float 에러`

by then-go 2023. 8. 23.

RuntimeError: expected scalar type Half but found Float

Pytorch는 Tensor연산시 Float32를 기준으로 진행하기에

내가 사용하는 데이터의 형식이 double이거나, Float64, int같이 Float32와 다른 형태일때 발생하는 오류이다.

이럴때는 아래와 같이 데이터 타입을 Float32로 바꿔주면 정상 연산된다.

ex) tran_gan_window_X라는 데이터의 타입을 변형할시 코드

train_gan_window_X = torch.tensor([train_gan_window_X], dtype = torch.float32)

sim_matrix = torch.matmul(image_features, txt_embedding.T)

여기서 오류가 생김. 따라서, image_features를 아래와 같이 바꾸어줌.

#before
# image_features = normalize(img_embedding)

#after
image_features = torch.tensor(normalize(img_embedding), dtype=torch.float32)

Uploaded by N2T