2017-08-07 32 views
1

還有其他職位有類似的問題,但沒有一個答案幫助我。我對這個CNN世界很陌生。keras重塑輸入圖像與CNN一起工作

我跟着this教程,用kenes使用theano作爲後端和MNIST數據集來培訓CNN。現在我想傳遞給CNN我自己的JPG圖片,但我不知道如何重塑它。你能幫我嗎?我在這個超級新。

到目前爲止,我想這將重塑

image = np.expand_dims(image, axis=0) image = preprocess_input(image) 

但出現以下錯誤預測時:

ValueError: Error when checking : expected conv2d_1_input to have shape (None, 1, 28, 28) but got array with shape (1, 3, 28, 28) 

正如你所看到的,我的CNN使用WIDTH = 28,身高= 28深度= 1。

+0

嗨,你有沒有設法找到答案呢?我也有我自己的一套圖像被塑造/調整大小以適應keras 28,28,1模型。我如何獲得各種尺寸的圖像以適應28,28,1?喂入未處理的圖像時出現以下錯誤:ValueError:無法將大小爲21600的數組重新整形(28,28,1) – emeralddove

回答

0

嘗試使用Numpy進行整形。因爲,你已經被使用2D-卷積模型:

image = np.reshape(image, (28, 1, 28, 1)) 
0

錯誤消息顯示網絡期望圖像形狀是1 * 28 * 28,但你的輸入是在3 * 28 * 28。我想你輸入的圖像是一個彩色圖像,3個通道(RGB),而網絡需要一個灰色圖像,一個通道。

當您致電opencv閱讀圖片時,請使用下面的代碼。 img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)