tensorflow RuntimeError:Graph is finalized and cannot be modified

本文探讨了在使用TensorFlow进行模型训练时,不同代码顺序导致的错误。特别是当tf.summary.scalar与tf.train.Saver操作顺序颠倒时,会引发图被冻结无法修改的问题。文章引用了Stack Overflow上的一篇讨论,解释了MonitoredTrainingSession会冻结图,使得后续的tf.global_variable_initializer()无法修改图,从而引发错误。

有可能的致错原因

   tf.summary.scalar('loss',loss)
    merged = tf.summary.merge_all()
 
    #save
    saver = tf.train.Saver(tf.global_variables())
    sv = tf.train.Supervisor(logdir=xx,saver=saver)

    with sv.managed_session(config=config) as sess:

这样写没有报上述错误

然而:下述顺序会报错

    tf.summary.scalar('loss',loss)

    #save
    saver = tf.train.Saver(tf.global_variables())
    sv = tf.train.Supervisor(logdir=xx,saver=saver)

    merged = tf.summary.merge_all()

    with sv.managed_session(config=config) as sess:

   可能的原因是:https://stackoverflow.com/questions/41798311/tensorflow-graph-is-finalized-and-cannot-be-modified中提到The root cause for your error seems to be that MonitoredTrainingSession has finalized (frozen) the graph and your tf.global_variable_initializer() is no longer able to modify it. 

可能是saver中涉及冻结图标的操作,但是这和merge_all有何关系扔不懂:-D....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值