我正在写一个模型,我这样写是为了使用 始终使用actor_t进行训练,使用actor_p进行预测,而这两者都使用相同的图层:
actor_p = Model(inputs=inputs_, outputs=policy_)
actor_t = Model(inputs=[inputs_, advantage_, old_policy], outputs=policy_)
actor_t.compile(optimizer=opt_ac, loss=ppo_loss(advantage_, old_policy))
return actor_t , actor_p
actor_t中的多余ipnut(advantage_和old_policy_)没有权重,因为它们仅显示在损失函数中。
训练并另存为.h5后,我重新创建模型并按如下方式加载:
tf.keras.models.save_model(actor_p, p+"_actor_ppo.h5") #p is some path variable
...
actor_p = tf.keras.models.load_model(p+"_actor_ppo.h5")
如您所见,actor_t未保存且未加载,我的假设是actor_t和actor_p在预加载时共享相同的模型,它们也会在后加载时也这样做。
对吗?还是actor_t是构造之后和加载之前的模型,而refref与actor_p不同吗?