我想用MNIST數據集對手寫數字進行分類以訓練我的模型。我的模型訓練成功,精度達到98.9%。但是,當我嘗試輸入自定義圖像時,它會顯示以下錯誤:對神經網絡層的輸入形狀錯誤
Error when checking : expected conv2d_4_input to have shape (None, 28, 28, 1) but got array with shape (1, 1, 28, 28)
這是第一個卷積圖層,即輸入圖層。 我能做些什麼來解決這個問題? 這是我的卷積神經網絡:
conv_model = Sequential()
conv_model.add(Conv2D(filters, kernel_size[0], input_shape=(28 , 28 , 1)))
conv_model.add(Activation(act))
conv_model.add(Conv2D(filters, kernel_size[0]))
conv_model.add(Activation(act))
conv_model.add(MaxPool2D(pool_size=(2,2)))
conv_model.add(Dropout(0.25))
conv_model.add(Flatten())
conv_model.add(Dense(128))
conv_model.add(Activation(act))
conv_model.add(Dropout(0.5))
conv_model.add(Dense(10))
conv_model.add(Activation('softmax'))
#conv_model.summary()
編制詳細信息:
conv_model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])
完整的源代碼: https://github.com/tanmay-edgelord/HandwrittenDigitRecognition
我用cv2.resize功能,爲每個功能cv2.contour發現輪廓調整圖像傳遞給重塑功能(每輪廓解決在這種情況下將是一個數字)。此外,我試着輸入大小1,28,28,1到cv2.resize,但它給了我只有2個參數預計的錯誤。我強烈建議您檢出performRecognition代碼 –
我在後端使用張量流 –
正常使用cv2並稍後重新設計結果。準備完成後重塑'roi',就在使用'model.predict'之前。如果'roi'是一個numpy數組,就像'roi = roi.reshape((1,28,28,1))'一樣簡單。如果沒有,使它成爲一個numpy數組:'roi = np.array(roi)'。 –