Negative size size caused by subtracting 3 from 1 for 'conv2d_2 / convolution'

I received this error message when declaring an input layer in Keras.

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

My code is

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

Sample application: https://github.com/IntellijSys/tensorflow/blob/master/Keras.ipynb

+10
source share
4 answers

Convolution2D (https://keras.io/layers/convolutional/) , (, , , ), "-". , , (, , , ). , data_format = 'channels_first' Convolution2D.

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

, , , . , .

, ( , , )

imageSize=32
classifier=Sequential() 

classifier.add(Conv2D(64, (3, 3), input_shape = (imageSize, imageSize, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu')) 
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu')) 
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu')) 
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

:

32 32. 30 30 (, )

, 15 15.

.. , , ( ) , -

, .

+12

Keras :

TensorFlow: Google, Theano: LISA, CNTK: Microsoft

, [?, X, X, X], [X, Y, Z, X], , , Keras:

from keras import backend as K
K.set_image_dim_ordering('th')

"tf" , (, , input_depth, )

...

+4

data_format: , "channel_last" "channel_first". . "channel_last" (, , , , ), "channel_first" (, , , , ). image_data_format, Keras ~/.keras/keras.json. , "channel_last".

:

0

Source: https://habr.com/ru/post/1683558/


All Articles