2016-10-30 56 views
13

Derin öğrenme kütüphanesi kerasını kullanıyorum ve şanssız çok sayıda LSTM yığmaya çalışıyorum. Aşağıda benim kodKeras'ta birden çok lstm nasıl yığılır?

model = Sequential() 
model.add(LSTM(100,input_shape =(time_steps,vector_size))) 
model.add(LSTM(100)) 

Yukarıdaki kod üçüncü satırda Exception: Input 0 is incompatible with layer lstm_28: expected ndim=3, found ndim=2

giriş X şeklinde (100,250,50) 'in bir tensör olan hata geri döndürür. Tensorlow backend

+0

Kodunuz ve giriş gayet

aşağıdaki örneğe bakın. Girişin iki boyutlu olmadığından emin misiniz? – Ishamael

+0

Hayır, X.shape ile kontrol ettim, 3D, 1. boyut her bir antrenman örneğidir, ikincisi time_steps içindir ve üçüncüsü 50 –

cevap

31

Üzerinde ketonlar çalıştırıyorsunuz: return_sequences = True katmanını ekleyiniz, böylece çıktı tensörü ndim = 3 (yani yığın boyutu, zaman sayısı, gizli durum). Gönderen

# expected input data shape: (batch_size, timesteps, data_dim) 
model = Sequential() 
model.add(LSTM(32, return_sequences=True, 
       input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 32 
model.add(LSTM(32, return_sequences=True)) # returns a sequence of vectors of dimension 32 
model.add(LSTM(32)) # return a single vector of dimension 32 
model.add(Dense(10, activation='softmax')) 

: https://keras.io/getting-started/sequential-model-guide/ ("istiflenmiş lstm" için arama)