Предупреждение Tensorflow: две ячейки, предоставленные MultiRNNCell, являются одним и тем же объектом

Таким образом, это оказалось ошибкой. Для тех, кто испытывает ту же проблему, Microsoft заявила, что будет исправлена ​​в VS 15.8 Preview 4.

0
задан Stumbler 19 January 2019 в 17:15
поделиться

1 ответ

Вы используете [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)
0
ответ дан giser_yugang 19 January 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: