2017-12-08 35 views
0

LSTM에 22 개의 기능 (22,2000)을 가진 1-D 신호 (1,2000)를 공급하려고합니다.
(1-D 신호는 200 hz 샘플링 속도로 10 초 걸립니다.)
그리고 808 배치가 있습니다. (808, 22, 2000)LSTM 2-d 입력 모양을 선택하는 방법은 무엇입니까?

나는 LSTM이 (batch_size, timestep, input_dim)의 3D 텐서 형태를받는 것을 보았다.
내 입력 모양이 그렇듯이 맞습니까?
: (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) 및 배치 크기에 맞추기 기능에 주어져야한다. 모양 3D 텐서 (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