2017-01-26 7 views
2

この深い学習モデルを構築するために、Kerasライブラリを使用しています:INPUT(深さ= 1、高さ= 15、幅= 27)→CONV [深さ= 8](高さ= 4、幅= 27) - > POOL(高さ= 2、幅= 1) - >(回帰)出力。Keras - CNNモデル要約Diemension解釈

convolution2d_1の出力形状が(None、8、12、1)で、pooling2d_1の出力形状が(None、8、6、1)であると予想します。 (None、8、15、27)と(None、8、7、27)を得ています。

私は何をやっているのか、ここで間違っていると解釈していますか?

P .:この設定では、ベースラインエラー:99.23%!

print "SHAPE OF INPUT IS:", num_train_3D, depth, height, width 
inp = Input(shape=(depth, height, width)) 
conv_1 = Convolution2D(8, 4, 27, border_mode='same', activation='relu')(inp) 
pool_1 = MaxPooling2D(pool_size=(2, 1))(conv_1) 
''' Now flatten to 1D, apply FC -> ReLU (with dropout) -> softmax ''' 
flat = Flatten()(pool_1) 
out = Dense(1)(flat) #regression 

model = Model(input=inp, output=out) # To define a model, just specify its input and output layers 

print "Model Summary:" 
print model.summary() 

=====================================

SHAPE OF INPUT IS: 53745 1 15 27 
Model Summary: 
____________________________________________________________________________________________________ 
Layer (type)      Output Shape   Param #  Connected to      
==================================================================================================== 
input_1 (InputLayer)    (None, 1, 15, 27)  0            
____________________________________________________________________________________________________ 
convolution2d_1 (Convolution2D) (None, 8, 15, 27)  872   input_1[0][0]      
____________________________________________________________________________________________________ 
maxpooling2d_1 (MaxPooling2D) (None, 8, 7, 27)  0   convolution2d_1[0][0]    
____________________________________________________________________________________________________ 
flatten_1 (Flatten)    (None, 1512)   0   maxpooling2d_1[0][0]    
____________________________________________________________________________________________________ 
dense_1 (Dense)     (None, 1)    1513  flatten_1[0][0]     
==================================================================================================== 
Total params: 2,385 
Trainable params: 2,385 
Non-trainable params: 0 

答えて

2

border_mode='same'border_mode='valid'に変更してください。ボーダーモードsameは、畳み込みレイヤーの出力がその入力と同じ形状であることを確認するために、入力にゼロパディングを追加します。ボーダーモードの場合valid畳み込みは、入力とフィルターが完全に重なるところでのみ実行されます。

+0

ありがとう、それは次元の不一致を解決します。 99.23%のベースラインエラーについてコメントすることができますか、私はまだまったく同じです! – devautor

+0

詳細については何も言及していないが、エラーについては何も言い難い。あなたはトレーニングのエラーやテストのことについて話していますか?あなたのデータセットはどうですか?エラーの問題について建設的なフィードバックを得るには、最小限の再現可能な例と必要なすべての詳細を提供してください。私は新しい質問でそれをすることを提案します、これは次元についてです。 –

+0

確かに、私はしばらくの間私自身で試してみると、必要ならばそれをやるでしょう:) – devautor

関連する問題