2017-01-10 29 views
1

私は基本的に次のように2Dをmaxpoolingに続く多くのconvolution2d層で構成され、深いモデルを構築しようとしています:Keras Convolution2d層の入力形状

model.add(Convolution2D(128, 54, 7, input_shape=(1, 54, 180))) 
model.add(MaxPooling2D(pool_size=(1, 3))) 

model.add(Convolution2D(128, 1, 7)) 
model.add(MaxPooling2D(pool_size=(1, 3))) 

はしかし、私は次のエラーを取得しています:

ファイル "/home/user/anaconda2/lib/python2.7/site-packages/keras/engine/training.py"、 ライン100、standardize_input_dataで STR(array.shape))例外:エラーチェックモデル入力:予想コンバージョン2d_input_1〜 4次元を持っていますが、形状を持つ配列 (8000、180、54) BLOCKQUOTE

しかし、私は(サンプル、チャンネル、行、colsの)ノルムを、以下のいを得ました。なぜこうなった ?

答えて

1

あなたの入力データの形状が間違っているようです。あなたは、ネットワークに供給しているデータの形を印刷する必要があります。

あなたのアレイは灰色の入力イメージで、通常は1つのチャネルしか持たないため、通常2次元しか使用していないようです。したがって、np配列は3次元なしで順序付けられます。通常は、np.reshapeを使用するか、別の方法で配列を割り当てることでこれを追加する必要があります。あなたのようなエラーメッセージが表示されたら、私は試してみます:

X # training data 
X = np.transpose(X, (0, 2, 1)) 
X = np.reshape(X, (X.shape[0], 1, X.shape[1], X.shape[2])) 
+0

私の入力データはテキストです。私はそれが問題を解決するかどうかを試してみるつもりです提案のおかげで。 –

関連する問題