2016-06-28 37 views
5

Tôi có một LSTM trong Keras mà tôi đang đào tạo để dự đoán về dữ liệu chuỗi thời gian. Tôi muốn mạng để dự đoán đầu ra trên mỗi timestep, vì nó sẽ nhận được một đầu vào mới sau mỗi 15 giây. Vì vậy, những gì tôi đang đấu tranh với là cách thích hợp để đào tạo nó để nó sẽ xuất h_0, h_1, ..., h_t, như một dòng liên tục khi nó nhận được x_0, x_1, ...., x_t như một luồng đầu vào . Có cách nào tốt nhất để thực hiện việc này không?Đầu ra dòng của các dự đoán trong Keras

enter image description here

Trả lời

4

Bạn có thể bật statefulness trong lớp LSTM của bạn bằng cách thiết lập stateful=True. Điều này thay đổi hành vi của lớp để luôn sử dụng trạng thái của lời gọi trước đó của lớp thay vì đặt lại nó cho mỗi layer.call(x).

Ví dụ một lớp LSTM với 32 đơn vị với kích thước hàng loạt 1, dãy dài 64 và chiều dài tính năng 10:

LSTM(32, stateful=True, batch_input_shape=(1,64,10)) 

Với cuộc gọi liên tiếp này của predict sẽ sử dụng tình trạng trước đó.

+1

Và như vậy .reset_states() sẽ là chức năng bắt đầu một chuỗi đầu vào mới? Rất tuyệt, cảm ơn bạn! – Rob

+0

Đúng. Quên đề cập đến điều đó, xin lỗi. – nemo

+0

@nemo Tôi có câu hỏi tiếp theo [ở đây] (http://stackoverflow.com/questions/38313673/lstm-with-keras-for-mini-batch-training-and-online-testing). Bạn có phiền không? – BoltzmannBrain

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