2017-12-08 30 views
0

LSTMに22個の機能(22,2000)を持つ1次元信号(1,2000)を供給しようとしています。
(200Hzのサンプリングレートで1-D信号を10秒で取得)
そして、私は808バッチを持っています。 (808、22、2000)LSTM 2-d入力形状の選択方法は?

LSTMが(batch_size、timestep、input_dim)の3​​Dテンソル形状を受け取ることがわかりました。
私の入力形状は正しいのですか?
:(batch_size = 808、timestep = 2000、input_dim = 3)

ここは私のコードサンプルです。

# data shape check 
print(X_train.shape) 
print(X_test.shape) 
print(y_train.shape) 
print(y_test.shape) 
(727, 22, 2000) 
(81, 22, 2000) 
(727, 2) 
(81, 2) 

# Model Config 
inputshape = (808,2000,2) # 22 chanel, 2000 samples 
lstm_1_cell_num = 20 
lstm_2_cell_num = 20 
inputdrop_ratio = 0.2 
celldrop_ratio = 0.2 

# define model 
model = Sequential() 
model.add(LSTM(lstm_1_cell_num, input_shape=inputshape, dropout=0.2, recurrent_dropout=0.2)) 
model.add(Dense(20)) 
model.add(LSTM(lstm_2_cell_num, dropout=0.2, recurrent_dropout=0.2)) 
model.add(Dense(2, activation='sigmoid')) 
print(model.summary()) 
model.compile(loss='binary_crossentropy', 
       optimizer='adam', 
       metrics=['accuracy']) 
+0

あなたが入力形状 – DJK

答えて

0

まず入力形状でなければならない(22,2000)およびバッチサイズフィット関数で与えられるべきです。形状の3次元テンソル(BATCH_SIZE、タイムステップ、単位:私はkeras.ioでそれを見つけたので、これは

inputshape = (22,2000) 

model.fit(X_train, y_train, 
      batch_size=808, 
      epochs=epochs, 
      validation_data=(X_test,y_test), 
      shuffle=True) 
+0

でバッチサイズが含まれていないしてみてください、RNNの出力形状は、この「return_sequencesかのようにする必要があります)。 'だから私はそれが(2000,22)でなければならないと思う。 – powermew

関連する問題