2016-10-30 39 views
13

Tôi đang sử dụng thư viện học tập sâu và cố gắng để ngăn xếp nhiều LSTM mà không có may mắn. Dưới đây là mã của tôiLàm thế nào để ngăn xếp nhiều lstm trong keras?

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

Đoạn mã trên trả về lỗi trong dòng thứ ba Exception: Input 0 is incompatible with layer lstm_28: expected ndim=3, found ndim=2

Các đầu vào X là một tensor của hình dạng (100,250,50). Tôi đang chạy keras trên backend tensorflow

+0

mã và đầu vào của bạn là tốt. Bạn có chắc đầu vào không phải là hai chiều không? – Ishamael

+0

Không, tôi đã kiểm tra thông qua X.shape, Đó là 3D, thứ nguyên thứ nhất là cho mỗi mẫu đào tạo, thứ hai là cho time_steps và thứ ba là kích thước vector là 50 –

Trả lời

31

Bạn cần thêm return_sequences = True cho lớp đầu tiên sao cho đầu ra của nó có ndim = 3 (nghĩa là kích cỡ lô, dấu thời gian, trạng thái ẩn).

Hãy xem ví dụ sau:

# 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')) 

Từ: https://keras.io/getting-started/sequential-model-guide/ (tìm kiếm cho "lstm xếp chồng lên nhau")

Các vấn đề liên quan