网页中给出了如何保存模型以及,从现有模型中直接加载已经持久化的图。但是博主在尝试使用该解决方案直接加载已经持久化的图而不必重新定义图的结构,进行predict时,源代码如下:

import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
import tensorflow as tf

saver = tf.train.import_meta_graph("exp_seven_model_savepath/.meta")
with tf.Session() as sess:
  saver.restore(sess, "exp_seven_model_savepath/")
  print("start")
  batch = mnist.train.next_batch(50)
  print (sess.run(accuracy,feed_dict = {x:batch[0],y_:batch[1],keep_prob: 0.5}))
  print("end")
结果发现,根本做不到:


从已有的图模型中没有操作accuracy的定义:


细想以后发现,accuary不是参数变量,也不是图结构的一部分,只是施加于该图的输出结果上的一个操作而已,在保存模型时,应该是没有保存的,这下就GG了,如果tensorflow的版本到现在还不支持的话,利用.meta文件加载图结构压根没有什么用,很多博客中介绍该方法时都知识以导出图以后再从图中导出某个变量的值,不能实施operation,导出变量以后还要将这些operation重新定义一遍,真的是很麻烦。

然而,博主使用bing国际版用英文检索到了解决方案



GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐