Плотный слой tf и tf.keras показывает совершенно другое поведение в моей настройке - PullRequest
1 голос
/ 25 сентября 2019

При использовании tenorflow 1.14 я заметил очень странное поведение при использовании tf.layers.Dense против tf.keras.layers.Dense.Люди в Stackoverflow говорят, что эти два слоя абсолютно одинаковы, и я в принципе согласен, но если посмотреть на вознаграждение со скидкой во время обучения агента AC, то получится следующий график:

tf vs tf.keras

Аргументы точно такие же.Повторные прогоны приводят к одному и тому же результату (см. Разноцветные данные на изображении).Насколько я понимаю код, один из плотных слоев наследуется от другого: tf.keras.layers.core и tf.layers.core .

Кто-нибудь может объяснить это поведение?

1 Ответ

0 голосов
/ 28 сентября 2019

Согласно ответу на аналогичную проблему в хранилище stable_baseline , похоже, что keras не поддерживает общие веса для нескольких агентов.Поэтому при обучении сети актера-критика с несколькими экземплярами каждая среда имеет свою собственную сеть, которая приводит к совершенно разным результатам.Исправление заключается в том, чтобы напрямую использовать только тензорные слои, которые поддерживают повторное использование тех же весов.

...