我想保存模型/图形并将其重新加载到另一个文件中。但是,我也希望能够继续更新新文件中的模型。到目前为止,我已经成功地重新加载了诸如神经网络输出之类的东西,但是我无法更新网络。
我已经尝试过了,但是它甚至无法编译。
tf.identity(self.train_pi_op, name="train_pi_op")
tf.identity(self.train_value_op, name="train_value_op")
tf.identity(self.target_update, name="target_update")
我需要重新加载这些内容:
self.train_pi_op = self.pi_optimizer.minimize(self.pi_loss, var_list=get_vars('main/pi'))
with tf.control_dependencies([self.train_pi_op]):
self.train_value_op = self.value_optimizer.minimize(self.value_loss, var_list=self.value_params)
with tf.control_dependencies([self.train_value_op]):
self.target_update = tf.group([tf.assign(self.v_targ, self.polyak * self.v_targ + (1 - self.polyak) * self.v_main)
for self.v_main, self.v_targ in zip(get_vars('main'), get_vars('target'))])
有人可以指出我正确的方向吗?如果可能的话,是否可以以某种方式保存权重和偏差并在其他文件中重用它们?我还在某处读到AdamOptimizer有其自己的参数(随时间变化),所以我相信我无法重写它,或者那是错误的吗?
提前谢谢大家
答案 0 :(得分:0)
所以我认为我已经解决了,只需简单地命名即可:
self.train_pi_op = self.pi_optimizer.minimize(self.pi_loss, var_list=get_vars('main/pi'), name="train_pi_op")
,并且在另一个我用
调用的程序中self.train_pi_op = self.graph.get_operation_by_name("train_pi_op")