파이썬 이것저것/파이썬 딥러닝 관련

[TensorRT] ValueError: cannot reshape array of size 57603 into shape (360,360) - ValueError 해결

agingcurve 2022. 10. 30. 17:11
반응형

yolact으로 학습시킨 파일을 TensorRT로 컨버팅하는 과정중에 있다.

 

.engine파일로 변환시키는 과정에서 layer를 제대로 인식하지 못해서 

 

이미지 정보를 제대로 변환하지 못하는 오류에 맞닥드렸다.

 

다양한 오류가 터지는 와중에 CUDA 버전 미일치 오류, TensorRT 버전 미일치 오류 등 

 

변환하는게 제법 까다로웠다.

 

그중에서도 공통적으로 나타나는 numpy로 rshape 하는 오류를 해결하는 과정에 있다.

 

어찌저찌 변환이 되어서 .engine 파일이 생성이 되었는데 이 파일로 inference를 하려 하니

 

numpy의 reshape오류가 나타나게 되었다.

 

해당 방법은 ValueError로 나타나는 numpy 오류만 해결하는 방법으로 정보손실이 있게되어 

 

적절한 오류 대처법은 아니지만 ValueError만 해결하고자 한다면 도움이 될 것이다.

 

먼저 57603의 데이터의 가로 세로가 몇인지 확인해 보려고 했다.

 

240 x 240 사이즈 크기

얼추 240 x 240 사이즈인것을 알 수 있었다.

 

해당 사이즈로 변환해주려고 했는데

ValueError: cannot reshape array of size 57603 into shape (240,240)

다시 오류가 나타났는데, 생각해보니 240 x 240 = 57600 이였다.

 

그래서 3을 제외한 나머지 데이터로 이미지 사이즈를 만들 수 있도록 하였다.

 

import numpy as np

x = np.arange(57603)
y = x[:-3]
z= np.reshape(x,(240,240))

 

이미지의 3pixel 정도의 데이터를 잃긴 하지만 오류가 없긴 하다.

 

하지만 근본적인 해결방법이 아니므로 변환과정에서 명확한 해결 방법을 찾도록 해야 겠다,