Вы используете [lstm_layer] * num_layers
для создания нескольких слоев RNN, которые фактически ссылаются на один и тот же объект в python.Это использование является нормальным в некоторых версиях tenorflow, а некоторые версии сообщают об ошибках.
Как говорится в предупреждении, поскольку все слои RNN являются одним и тем же объектом, их весовые коэффициенты будут оставаться одинаковыми.Все ошибки возвращаются на уровень RNN.Это эквивалентно уменьшению параметров модели и снижению сложности модели.
Если вы хотите создать несколько разных слоев RNN и сложных моделей, вы можете использовать следующее использование.Оценка эффективности этих двух различных методов зависит от конкретных сценариев применения и результатов.Если результаты вашей модели достаточно хороши, более сложные модели не имеют особого смысла.
rnn_layers = []
for _ in range(num_layers):
lstm_layer = rnn.LSTMBlockCell(num_units, forget_bias=1)
lstm_layer = rnn.DropoutWrapper(lstm_layer, output_keep_prob=output_keep_prob)
rnn_layers.append(lstm_layer)
stacked_lstm = rnn.MultiRNNCell(rnn_layers)