728x90
반응형
Network의 입력으로 Batch 형태의 image 뭉치를 제공하는데 다음과 같은 에러가 발생했다.
# proc_image = (batch, 32, 100, 1) == Batch Size, Width, Height, Channel Num
preds = self.sess.run(self.prediction, feed_dict={self.image:proc_image})
proc_image는 앞서 전처리를 통해 np.array() 형태의 image tensor list를 tf.Tensor형태로 변경해놓은 상황이었고, 구글링을 해보니 계속 proc_image가 np.array()형태여야 한다길래 억지로 proc_image = np.array(proc_image)로 형변환을 해서 아래와 같이 확인했는데도, 문제가 발생한다.
proc_image = np.array(proc_image)
print(proc_image)
#array(<tf.Tensor 'stack_1:0' shape=(8, 32, 100, 1) dtype=float32>, dtype=object)
print(type(proc_image))
<class 'numpy.ndarray'>
몇번의 삽질 끝에 다음 링크에서 sess.run으로 형변환을 하는 것을 보고 그대로 따라했더니 정상 작동한다..
sess.run을 통해 형변환한 값은 아래와 같이 이전에 np.array로 해줄때와 다르다.
Tensorflow를 잘 모르는 나는 정확한 원인을 모르겠으나, sess이 돌면서 자동으로 Network의 입력이 될 Numpy array값으로 형변환 되는 듯 하다.
print(type(proc_image))
#<class 'numpy.ndarray'>
print(proc_image.shape)
#(8, 32, 100, 1)
print(proc_image)
'''
array([[[[ 0.5 ],
[ 0.5 ],
[ 0.5 ],
...,
[ 0.5 ],
[ 0.5 ],
[ 0.5 ]],
[[ 0.5 ],
[ 0.5 ],
[ 0.5 ],
...,
[ 0.5 ],
[ 0.5 ],
[ 0.5 ]]]], dtype=float32)
'''
728x90
반응형
'사소한 Tip . 오류 해결법' 카테고리의 다른 글
[LMDB] lmdb file loading, reading (0) | 2021.12.08 |
---|---|
[Tensorflow] Tensorflow v1 to Tensorflow v2 자동화 코드(.ipynb) (0) | 2021.12.07 |
Tensorflow Warning Entity bound method ... Please report this to the AutoGraph team. 해결 방법 (0) | 2021.12.02 |
[python] 일부 겹치는 문장 찾고 합치기 / difflib, SequenceMatcher (0) | 2021.12.01 |
[Json] Ai Hub 공공데이터 형식(ImageSet format) labelme형태로 변경하기 (0) | 2021.11.25 |