2017-08-12 292 views
4

在Keras中聲明輸入圖層時,我得到了此錯誤消息。由於'conv2d_2 /卷積'從1減1而導致的負尺寸大小

ValueError: Negative dimension size caused by subtracting 3 from 1 for 'conv2d_2/convolution' (op: 'Conv2D') with input shapes: [?,1,28,28], [3,3,28,32].

我的代碼是這樣的

model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28))) 

示例應用程序:https://github.com/IntellijSys/tensorflow/blob/master/Keras.ipynb

請指點。謝謝。

+1

我想你想使用3x3內核。在這種情況下,你應該寫'(3,3)'而不是'3,3'。 – ml4294

+0

如何找出使用(3,3)或(4,4)或(5,5)做出的區別? @ ml4294 –

回答

8

默認情況下,Convolution2D(https://keras.io/layers/convolutional/)預期輸入採用「通道最後」格式(採樣,行,列,通道)。您的數據似乎採用格式(樣本,渠道,行,列)。在聲明Convolution2D圖層時,您應該可以使用可選關鍵字data_format = 'channels_first'來解決此問題。

model.add(Convolution2D(32, (3, 3), activation='relu', input_shape=(1,28,28), data_format='channels_first')) 
+0

我會先嚐試 –

+0

tq,它的作品! –

+0

這很好聽。別客氣! – ml4294