使用tensorflow 1.14时,我注意到使用tf.layers.Dense与tf.keras.layers.Dense时有一些非常奇怪的行为。 Stackoverflow上的人说这两层是完全相同的,我基本上会同意,但是在培训AC代理时查看折扣的奖励会得出下图:
参数完全相同。重复运行会得到相同的结果(请参见图像中不同颜色的数据)。据我了解的代码,密集层之一继承自另一层:tf.keras.layers.core和tf.layers.core。
有人能解释这种行为吗?
答案 0 :(得分:0)
根据对similar issue on the stable_baseline repository的响应,看来keras不支持多个代理之间的共享权重。因此,当用多个实例训练一个行为者批判网络时,每个环境都有自己的网络,这会导致完全不同的结果。解决方法是仅直接使用tensorflow层,以支持相同权重的重用。