본문 바로가기
Error Correction

TypeError: Cannot handle this data type: (1, 1), <i8 - PIL.IMAGE fromarray 에러

by apsdfjoi 2023. 5. 25.
728x90
반응형
Image.fromarray(re[0].numpy())

이전에 작성했을 때 문제없던 코드를 재사용하니 에러가 발생했다. re[0].numpy()의 shape는 (224,224)이다.

 

mode를 지정해주면 오류가 해결된다. L 대신 RGB를 사용해도 된다.

하지만 에러만 사라졌을 뿐, 근본적인 문제는 해결되지 않았다. 검은 이미지가 아닌 Segmentation 결과가 출력되어야 한다.

오류를 수정한 결과이다.

dtype이 int64였는데 이는 fromarray함수에서 지원하지 않는 data type이므로 에러가 발생한 것이다.

pred_test의 return 값은 같은 torch.Tensor 타입의 pred에서 pred.byte().numpy(), pred.numpy() 값이다.

dtype은 각각 uint8, int64이다.

dtype을 바꿔봤다.

PIL.Image.fromarray() 함수는 int64와 float16 data type을 지원하지 않지만 mode 매개변수를 지정해주면 겉으로 에러는 발생하지 않는다.

728x90
반응형

댓글