Tôi không chắc chắn về những gì tôi hiểu từ tài liệu chính thức, trong đó nói:
Trả về: Một cặp (đầu ra, trạng thái) trong đó:
outputs
: Tenor đầu ra RNN.Nếu
time_major == False
(mặc định), đây sẽ là một hình dạng kéo căng :[batch_size, max_time, cell.output_size]
.Nếu
time_major == True
, đây sẽ là một hình dạng Tenor :[max_time, batch_size, cell.output_size]
.Lưu ý, nếu
cell.output_size
là một tuple (có thể lồng nhau) các số nguyên hoặc các đối tượng TensorShape, thì các đầu ra sẽ là một tuple có cấu trúc giống như cell.output_size, chứa các Tenor có hình dạng tương ứng với dữ liệu hình dạngcell.output_size
.
state
: Trạng thái cuối cùng. Nếu cell.state_size là một int, nó sẽ được định hình[batch_size, cell.state_size]
. Nếu nó là một TensorShape, nó sẽ được định hình[batch_size] + cell.state_size
. Nếu nó là một tuple (có thể lồng nhau) của ints hoặc TensorShape, đây sẽ là một tuple có các hình dạng tương ứng. Nếu các ô là trạng thái LSTMCells sẽ là một tuple chứa LSTMStateTuple cho mỗi ô.
Có phải output[-1
] luôn luôn (trong cả ba loại ô, ví dụ RNN, GRU, LSTM) bằng trạng thái (phần tử thứ hai của bộ trả về)? Tôi đoán rằng văn học ở khắp mọi nơi là quá tự do trong việc sử dụng thuật ngữ ẩn trạng thái. Là trạng thái ẩn trong cả ba ô, điểm số xuất hiện (tại sao nó được gọi là ẩn nằm ngoài tôi, nó sẽ xuất hiện trạng thái ô trong LSTM nên được gọi là trạng thái ẩn vì nó không bị lộ)?