Python 3.x 如何子类`tf.train.Saver()`?

Python 3.x 如何子类`tf.train.Saver()`?,python-3.x,tensorflow,tensorflow-slim,Python 3.x,Tensorflow,Tensorflow Slim,我正在进行colaboratory培训,有时会失去与服务器的连接。90分钟不活动后,VM也将重置 我想用回调覆盖tf.train.Saver.save(),这样我就可以按时间或步长将检查点复制到我的Google云存储帐户 见: 但是当我运行slim.learning.train(saver=callback\u saver) 错误: --------------------------------------------------------------------------- Attrib

我正在进行
colaboratory
培训,有时会失去与服务器的连接。90分钟不活动后,VM也将重置

我想用回调覆盖
tf.train.Saver.save()
,这样我就可以按时间或步长将检查点复制到我的Google云存储帐户

见:

但是当我运行
slim.learning.train(saver=callback\u saver)

错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-41-dfb09327cccd> in <module>()
    149                         save_summaries_secs=300,
    150                         save_interval_secs=600,
--> 151                         saver=callback_saver,
    152 #                         saver=tf_saver.Saver,
    153                        )

/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/slim/python/slim/learning.py in train(train_op, logdir, train_step_fn, train_step_kwargs, log_every_n_steps, graph, master, is_chief, global_step, number_of_steps, init_op, init_feed_dict, local_init_op, init_fn, ready_op, summary_op, save_summaries_secs, summary_writer, startup_delay_steps, saver, save_interval_secs, sync_optimizer, session_config, session_wrapper, trace_every_n_steps)
    730       save_summaries_secs=save_summaries_secs,
    731       save_model_secs=save_interval_secs,
--> 732       init_fn=init_fn)
    733 
    734   if summary_writer is not None:

/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/python/training/supervisor.py in __init__(self, graph, ready_op, ready_for_local_init_op, is_chief, init_op, init_feed_dict, local_init_op, logdir, summary_op, saver, global_step, save_summaries_secs, save_model_secs, recovery_wait_secs, stop_grace_secs, checkpoint_basename, session_manager, summary_writer, init_fn)
    304     self._meta_graph_def = meta_graph.create_meta_graph_def(
    305         graph_def=graph.as_graph_def(add_shapes=True),
--> 306         saver_def=self._saver.saver_def if self._saver else None)
    307     self._is_chief = is_chief
    308     self._coord = coordinator.Coordinator()

AttributeError: 'Saver_with_callback' object has no attribute 'saver_def'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在()
149保存摘要=300,
150保存间隔=600秒,
-->151 saver=callback\u saver,
152#saver=tf#u saver.saver,
153                        )
/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/slim/python/slim/learning.py在列车上(train_op,logdir,train_step,fn,train_step,kwargs,log_every_n_steps,graph,master,is_chief,global_step,number_step,init_op,init_feed_dict,local_init_op,init_fn,ready_op,summary_op,save_secs,save_summary_writer,start_delay_steps,start_steps,save_interval_secs,sync_optimizer,sync_optimizer,session_config,session_trace_trace_trace_trace_traceps)
730保存摘要秒=保存摘要秒,
731保存模式秒=保存间隔秒,
-->732初始值fn=初始值fn)
733
734如果摘要编写器不是无:
/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/python/training/supervisor.py in_u_init__(self、graph、ready\u op、ready\u for\u local\u init\u op、is\u chief、init\u feed\u dict、local\u init\u op、logdir、summary\u op、saver、global\u step、save\u summaries\u secs、save\u model\u secs、recovery\u wait\u secs、stop\u grace\u secs、checkpoint\u basename、session\u manager、summary\u writer、init\u fn)
304 self._meta_graph_def=meta_graph.create_meta_graph_def(
305图形定义=图形。作为图形定义(添加形状=真),
-->306 saver_def=self.\u saver.saver_def如果self.\u saver其他无)
307 self._is_chief=是_chief
308 self.\u coord=协调人
AttributeError:'Saver_with_callback'对象没有属性'Saver_def'
``


isinstance(callback\u saver,tf\u saver.saver)=True
如果我使用
saver=tf\u saver.saver()
它可以正常工作。

你不是在
saver\u with\u callback.\uu init\uuuuuu()中调用
tf\u saver.saver
函数

调用
super(tf\u saver.saver,self)时,调用了
tf\u saver.saver
的父类的
\uuuu init\uuuuuuuuuuuuu
函数

这是因为
super(tf_saver.saver,self)
返回
tf_saver.saver
的父类,而不是
tf_saver.saver
本身

你应该打电话

super(带回调的Saver\u,self)。\uuuu init\uuu(**kwargs)

或者简单地说是Python3


super()

我尝试使用<代码> Apple >代码> > Cron < /Cult> LIB,但是我得到了一个时区错误,我不认为它是配置的。<代码> unNoNeNeTimeZONEORKEY:“找不到任何时区配置”<代码>。您是否考虑将检查点保存到Dropbox或其他同步目录?这可以比编写TH更快地组织起来。问题是我正在使用google
colaboratory
,不确定dropbox是否受VM支持,因为变量
saver\u def
设置在基本
saver
类的
\uuuuu init\uuuuuuuuuuu
方法的
\uuuuuuu init>中,我怀疑saver的
方法没有被调用。我会使用新的pyth在3
super()
?我不熟悉装饰器结构我做了以下更改,效果很好
super()。\uuuu init\uuuuugs(**kwargs)
model\u checkpoint\u path=super().save(sess,save\u path,**kwargs)
    final_loss = slim.learning.train(train_op, log_dir, 
                        init_fn=init_fn,
                        global_step=global_step,
                        number_of_steps=steps,
                        save_summaries_secs=300,
                        save_interval_secs=600,
                        saver=callback_saver,
                        #    saver=tf_saver.Saver(),                                     
                       )
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-41-dfb09327cccd> in <module>()
    149                         save_summaries_secs=300,
    150                         save_interval_secs=600,
--> 151                         saver=callback_saver,
    152 #                         saver=tf_saver.Saver,
    153                        )

/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/slim/python/slim/learning.py in train(train_op, logdir, train_step_fn, train_step_kwargs, log_every_n_steps, graph, master, is_chief, global_step, number_of_steps, init_op, init_feed_dict, local_init_op, init_fn, ready_op, summary_op, save_summaries_secs, summary_writer, startup_delay_steps, saver, save_interval_secs, sync_optimizer, session_config, session_wrapper, trace_every_n_steps)
    730       save_summaries_secs=save_summaries_secs,
    731       save_model_secs=save_interval_secs,
--> 732       init_fn=init_fn)
    733 
    734   if summary_writer is not None:

/anaconda/anaconda3/lib/python3.6/site-packages/tensorflow/python/training/supervisor.py in __init__(self, graph, ready_op, ready_for_local_init_op, is_chief, init_op, init_feed_dict, local_init_op, logdir, summary_op, saver, global_step, save_summaries_secs, save_model_secs, recovery_wait_secs, stop_grace_secs, checkpoint_basename, session_manager, summary_writer, init_fn)
    304     self._meta_graph_def = meta_graph.create_meta_graph_def(
    305         graph_def=graph.as_graph_def(add_shapes=True),
--> 306         saver_def=self._saver.saver_def if self._saver else None)
    307     self._is_chief = is_chief
    308     self._coord = coordinator.Coordinator()

AttributeError: 'Saver_with_callback' object has no attribute 'saver_def'