Tensorflow-重新加载模型并能够继续更新

时间:2020-02-07 17:01:18

标签: tensorflow

我想保存模型/图形并将其重新加载到另一个文件中。但是,我也希望能够继续更新新文件中的模型。到目前为止,我已经成功地重新加载了诸如神经网络输出之类的东西,但是我无法更新网络。

我已经尝试过了,但是它甚至无法编译。

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有其自己的参数(随时间变化),所以我相信我无法重写它,或者那是错误的吗?

提前谢谢大家

1 个答案:

答案 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")