tf和tf.keras密集层在我的设置中显示了完全不同的行为

时间:2019-09-25 06:09:58

标签: python tensorflow keras tf.keras

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

tf vs tf.keras

参数完全相同。重复运行会得到相同的结果(请参见图像中不同颜色的数据)。据我了解的代码,密集层之一继承自另一层:tf.keras.layers.coretf.layers.core

有人能解释这种行为吗?

1 个答案:

答案 0 :(得分:0)

根据对similar issue on the stable_baseline repository的响应,看来keras不支持多个代理之间的共享权重。因此,当用多个实例训练一个行为者批判网络时,每个环境都有自己的网络,这会导致完全不同的结果。解决方法是仅直接使用tensorflow层,以支持相同权重的重用。