tf 和 tf.keras 密集层在我的设置中表现出完全不同的行为

tf and tf.keras Dense layer shows completely different behavior in my setup

在使用 tensorflow 1.14 时,我注意到在使用 tf.layers.Dense 与 tf.keras.layers.Dense 时有一些非常奇怪的行为。 Whosebug 上的人说这两层完全一样,我基本上同意,但是在训练 AC 代理时看一下折扣奖励结果如下图:

论点完全一样。重复运行会导致相同的结果(请参阅图像中不同颜色的数据)。据我了解代码,其中一个 Dense 层继承自另一个层:tf.keras.layers.core and tf.layers.core.

有人能解释这种行为吗?

根据一个similar issue on the stable_baseline repository的回复,好像keras不支持多个agent共享权重。因此,在训练具有多个实例的 actor-critic 网络时,每个环境都有自己的网络,这会导致完全不同的结果。解决方法是只直接使用支持重复使用相同权重的 tensorflow 层。