나는 이 모델을 훈련 시키고 (웹 사이트에서 바로 복사 붙여 넣기) model.save()
. 이제 생성 한 이미지를 분류하는 데 사용하고 싶습니다.이를 저장하고 28x28 픽셀로 모양을 변경 한 다음 다음과 같이 모델에 공급하려고합니다.
from matplotlib import image
img = image.imread('img.png')[:,:,:1] #so that the shape ends up being (28,28,1)
print(self.model.predict(img))
하지만 이것을 실행하면 많은 오류가 발생합니다.
경고 : tensorflow : Model은 입력 Tensor ( "input_1 : 0", shape = (None, 28, 28, 1), dtype = float32)에 대해 모양 (None, 28, 28, 1)으로 구성되었지만 호출되었습니다. 호환되지 않는 모양의 입력 (없음, 28, 1, 1). ...
ValueError: Input 0 of layer dense_12 is incompatible with the layer: expected axis -1 of input shape to have value 784 but received input with shape [None, 28]`
나는 몇 가지 파고 들었고 다음 줄에 따르면 입력의 모양에 문제가있는 것 같습니다. WARNING:tensorflow:Model was constructed with shape (None, 28, 28, 1) for input Tensor("input_1:0", shape=(None, 28, 28, 1), dtype=float32), but it was called on an input with incompatible shape (None, 28, 1, 1)
이미지를 올바른 모양으로 변환하려면 어떻게합니까?
그래서 난 쉽게 고칠 수 있었지만 다른 사람이 문제가 발생할 경우를 대비하여 여기에 남겨 둘 것입니다.
from keras.preprocessing.image import load_img, img_to_array
img = load_img('img.png')
img = img_to_array(img)[:,:,:1]
img = np.expand_dims(img ,axis=0)
이것은 (1, 28, 28, 1)
모델에 공급하는 데 필요한 이미지의 모양을 변경했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다