276 x None x 3, 64 , 276 x 1 ( rows = 276). 1 x None. , , . , 64 ( Theano) 64 x 1 x None. Tensorflow , 1 x None x 64. Keras-Theano - . , None x 64 x 1 x None. Tensorflow None x 1 x None x 64. Keras.
, , , Dense.
model.add(Flatten())
, . , , , . , None , , . 1 x None, average , 1 x 1 x None.
. 276 x n x 3, , 1 x n, :
model = Sequential()
model.add(Convolution2D(64,row,1,input_shape=(row,None,3)))
model.add(Convolution2D(1,1,1))
print model.output_shape # this should print `None x 1 x None x 1`
model.add(flatten())
, , 64 . (, 276 - ). :
, 50. :
model = Sequential()
model.add(Convolution2D(32,3,1,activation='relu',
init='he_normal',input_shape=(row,None,3))) # row = 50
model.add(Convolution2D(32,3,1,activation='relu',init='he_normal'))
model.add(MaxPooling2D(pool_size=(2,1), strides=(2,1), name='pool1'))
model.add(Convolution2D(64,3,1,activation='relu',init='he_normal'))
model.add(Convolution2D(64,3,1,activation='relu',init='he_normal'))
model.add(MaxPooling2D(pool_size=(2,1), strides=(2,1), name='pool2'))
model.add(Convolution2D(128,3,1,activation='relu',init='he_normal'))
model.add(Convolution2D(128,3,1,activation='relu',init='he_normal'))
model.add(Convolution2D(128,3,1,activation='relu',init='he_normal'))
model.add(MaxPooling2D(pool_size=(2,1), strides=(2,1), name='pool3'))
model.add(Convolution2D(1,1,1), name='squash_channels')
print model.output_shape # this should print `None x 1 x None x 1`
model.add(flatten(), name='flatten_input')
, 50 1 .
- , . 224. 224 x n, (, ). , , , p x n' p > 224 n' != n. 224 x n' . -.
, , , ( ) . , , .
Edit:
. CNN, 3 x 3 . , 50 x n x 3. , p x q x r , f, 3 x 3, 1. . (p-2) x (q-2) x f , . (2,1) (2,1). y ( ). , ( , CNN, ).
CNN: None x 50 x n x 3
pool1: None x 46 x n x 32
pool1: None x 23 x n x 32
pool2: None x 19 x n x 64
pool2: None x 9 x n x 64 ( , Keras , (19/2) = 9)
pool3: None x 3 x n x 128
pool3: None x 1 x n x 128
squash_channels: None x 1 x n x 128
squash_channels: None x 1 x n x 1
flatten_input: None x 1 x n x 1
flatten_input: None x n
, , . , .