Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Tensorflow中,是否有一种简单的方法可以在发生模型检查点时注册回调函数?_Tensorflow - Fatal编程技术网

在Tensorflow中,是否有一种简单的方法可以在发生模型检查点时注册回调函数?

在Tensorflow中,是否有一种简单的方法可以在发生模型检查点时注册回调函数?,tensorflow,Tensorflow,我在看Tensorflow实现的文本编码器模型的代码,该模型名为Skip Think Vector models: 培训脚本中的代码包含以下内容: saver=tf.train.saver() tf.contrib.slim.learning.train( 火车头=火车头张量, logdir=FLAGS.train\u dir, 图=g, 全局步骤=model.global步骤, 步骤数=培训步骤数, save_summaries_secs=培训_config.save_summaries_se

我在看Tensorflow实现的文本编码器模型的代码,该模型名为Skip Think Vector models:

培训脚本中的代码包含以下内容:

saver=tf.train.saver()
tf.contrib.slim.learning.train(
火车头=火车头张量,
logdir=FLAGS.train\u dir,
图=g,
全局步骤=model.global步骤,
步骤数=培训步骤数,
save_summaries_secs=培训_config.save_summaries_secs,
储蓄者=储蓄者,
保存\间隔\秒=培训\配置。保存\模型\秒)
显然,每
training\u config.save\u model\u secs
秒就会保存一个模型检查点


我想知道是否有一种方法可以注册某种回调函数,这种回调函数在每次模型检查点发生后都会被调用。具体地说,我想将模型检查点移动/复制到其他一些网络位置。

检查点保存链接器(请参阅)这是一种可行的方法,但需要使用
监控训练会话
而不是依赖slim api,因此需要重新实现
slim.train
方法的一些逻辑

#上面TensorFlow链接中的类示例
类示例CheckpointSaverListener(CheckpointSaverListener):
保存后的def(自我、会话、全局步骤值):
打印('完成写入检查点')
...
#伪代码来说明如何使用它
您的_hooks=[ExampleCheckpointSaverListerner()]
步长=0
使用tf.train.MonitoredTrainingSession(检查点方向=FLAGS.train方向,
仅首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席首席
#你的训练循环
当步骤
谢谢@Nicolas。我想这是我在Tensorflow中的唯一选择。我选择并行运行一个完全独立的线程,而不是重写Tensorflow代码。这还允许我在处理多线程处理中可能出现的冲突时增加一些复杂性(例如,一个线程试图在编写文件时复制一个模型文件),同时在我想要的方面提供一些灵活性。但不管怎样,对于我想做的事情,我能够运行一个独立的线程无锁。有没有办法?