我最近的项目中,keras的h5为分类模型,tensorflow的ckpt为特征点检测模型,两个模型串联到一起,没有如其他博客中所述的报错情况,只是分类模型得到的分类结果与预期大相径庭。而这个模型单独跑是完全正常的。
原因:两个模型的session混用,tensorflow的ckpt应该单独创建session。
比如:
with tf.Session().as_default() as sess:
sess.run(global_init)
latest_ck_file = tf.train.latest_checkpoint(checkpoint_dir)
为tensorflow的模型单独创建会话,注意使用tf.Session().as_default(),这样就算with中的代码结束,会话也不会关闭。
在需要使用tf模型时,再使用 with sess.as_default(): 调用会话。程序运行结束手动关闭会话,sess.close()
参考blog:https://blog.youkuaiyun.com/googler_offer/article/details/91416521