【Tensorflow笔记0.2 踩坑】tensorflow加載pretrained_model時遇到的bug解決方案

问题概述

下面是在facenet中加载pretrained_model时遇到的一些错误:
错误1:tensorflow.python.framework.errors_impl.InvalidArgumentError exception str() failed
错误2:tf.train.get_checkpoint_state(checkpoint_dir) return none type
错误3:tf.train.latest_checkpoint(“model/”) return none

错误1解决方案:
[1]中的方法是在当我们自己的训练集class数量和作者当初的训练集class数量相同时才有效,然而我们在实际开发时不可能恰好和作者的训练集class数量相同。下面是参考[2][3]给出的解决方案:
下面这个创建saver的方法在初次保存模型时可用,但在恢复模型时是不可用的。

saver = tf.train.Saver(tf.trainable_variables(), max_to_keep=3)

恢复模型时应该像下面这样:

saver = tf.train.import_meta_graph('/home/***/models/20180402-114759/model-20180402-114759.meta')
saver.restore(sess, tf.train.latest_checkpoint('/home/***/models/20180402-114759'))

错误2、3解决方案:
参考[4]知道tensorflow预训练模型有4部分组成:
这里写图片描述
出现错误2、3的原因可能是由于缺少checkpoint文件,我们可以新建一个checkpoint文件并写入如下内容:

model_checkpoint_path: "/home/master/dev/facerec/facenet/mydataset/models/20180402-114759/model-20180402-114759.ckpt-275"

至此,facenet加载pretrained_model时遇到的bug全部解决。

参考文献

[1] 加载pretrained_model模型
[2] TensorFlow保存还原模型的正确方式,Saver的save和restore方法,亲测可用
[3] Tensorflow 同时载入多个模型
[4] 【tensorflow】保存模型、再次加载模型等操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值