【问题标题】:Tensorflow "DataLossError: Checksum does not match" when used with supervisor与主管一起使用时,Tensorflow“DataLossError:校验和不匹配”
【发布时间】:2017-12-11 19:51:23
【问题描述】:

我一直在使用 tensorflow 和 tf.train.Supervisor -

sv = tf.train.Supervisor(logdir=path, save_model_secs=900)
with sv.managed_session() as sess:
    if not sv.should_stop(): 
        #Rest of the code

最近,它在训练期间崩溃了,从那以后它一直在上面的with sv.managed_session() 行抛出以下错误 -

DataLossError(回溯见上文):校验和不匹配:存储的 1057608875 与根据恢复的字节 763056116 计算的结果

[[节点:save/RestoreV2_31 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save/Const_0, save/RestoreV2_31/tensor_names , 保存/RestoreV2_31/shape_and_slices)]]

有办法解决吗?

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    这意味着您的检查点文件已损坏。删除最新版本(即具有最大global_step 编号的版本)并重试,它应该可以工作。

    【讨论】:

    • 谢谢。虽然只有一个检查点文件。其余文件有 model.ckpt.data-00000-of-00001、graph.pbtxt、model.ckpt.meta、model.ckpt.index 和一些 event.out.tfevents 文件。
    • 我明白了。我不知道它可以保存备份检查点,在我的情况下似乎只保存一个文件,是主管中的某些参数(除了 save_model_secs)允许它开始保存更多检查点吗?
    • 那个是参数。使用 MonitoredSession(替代 Supervisor),您可以使用 CheckpointSaverHook 来控制频率。
    猜你喜欢
    • 2020-07-02
    • 2021-03-20
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2020-12-02
    • 1970-01-01
    • 2014-05-08
    相关资源
    最近更新 更多