(sử dụng python)Đầu ra của Tensorflow LSTM-Cell
Tôi có một câu hỏi về Tensorflow LSTM-Implementation. Hiện tại có một số triển khai vào TF, nhưng tôi sử dụng:
cell = tf.contrib.rnn.BasicLSTMCell(n_units)
- nơi n_units là số tiền của 'song song' LSTM-Cells.
Sau đó, để có được đầu ra của tôi, tôi gọi:
rnn_outputs, rnn_states = tf.nn.dynamic_rnn(cell, x,
initial_state=initial_state, time_major=False)
- nơi (như
time_major=False
)x
là hình dạng(batch_size, time_steps, input_length)
- nơi
batch_size
là batch_size tôi - nơi
time_steps
là lượng timesteps RNN của tôi sẽ đi qua - nơi
input_length
là chiều dài của một trong những vectơ đầu vào của tôi (vector đưa vào mạng trên một timestep cụ thể về một đợt cụ thể)
Tôi hy vọng rnn_outputs được hình dạng (batch_size, time_steps, n_units, input_length)
như tôi đã không quy định khác kích thước đầu ra. Tài liệu về nn.dynamic_rnn
cho tôi biết rằng đầu ra có hình dạng (batch_size, input_length, cell.output_size)
. Tài liệu của tf.contrib.rnn.BasicLSTMCell
không có thuộc tính output_size
, được mặc định là n_units (số lượng tế bào LSTM tôi sử dụng).
Vì vậy, mỗi LSTM-Cell chỉ xuất ra vô hướng cho mỗi dấu thời gian nhất định không? Tôi hy vọng nó sẽ xuất ra một vectơ có độ dài của vector đầu vào. Điều này có vẻ không phải là trường hợp từ cách tôi hiểu nó ngay bây giờ, vì vậy tôi bối rối. Bạn có thể cho tôi biết liệu đó là trường hợp hay làm thế nào tôi có thể thay đổi nó để xuất ra một vectơ có kích thước của vector đầu vào cho mỗi lstm-cell đơn lẻ?
Làm thế nào bạn nhận được kết luận rằng mỗi ô LSTM chỉ xuất ra vô hướng cho mỗi dấu thời gian nhất định? – jabalazs
bạn có thể đăng một đoạn mã hay một đoạn mã lớn hơn để chúng tôi có thể xem/tự chạy mã để hiểu rõ hơn về ngữ cảnh không? –