所以我在这里查看官方张量流教程:https://www.tensorflow.org/tutorials/layers
基本上,它教你如何训练mnist数据集的分类器。
完整的代码非常简短,可以在这里找到: https://github.com/tensorflow/tensorflow/blob/r1.8/tensorflow/examples/tutorials/layers/cnn_mnist.py
我可以毫无问题地运行它。但我想知道如何重复使用此文件中训练的估算器来执行其他程序。该模型保存为3个文件:一个.data-00000-of-00001文件,一个.meta文件和一个.index文件。
我用Google搜索,似乎您可以通过以下方式加载模型:
sess=tf.Session()
saver = tf.train.import_meta_graph('my_model.meta')
saver.restore(sess,tf.train.latest_checkpoint('./'))
但我如何从这里开始呢?看起来很奇怪教程没有教你如何重用估算器。
答案 0 :(得分:0)
导入元图不会在元图中显式加载节点。 它只在内部加载节点。并且此内部节点具有您之前分配的名称,如
tf.truncated_normal([28, 128], stddev=1.0 / math.sqrt(float(28))), name="weights1")
在这种情况下,“weights1”是您的“内部”节点名称。 然后你应该将你的'内部'节点绘制(分配)为'外部'变量(代码级别)。
# bring out a "weights1" node from meta graph
fc_weights1 = tf.get_collection('weights1')
就像这样,你可以做到
logits = tf.get_collection('logits_node_before_you_named')
你可以写下你以前做过的新的精确节点。
总之,您可以使用tf.get_collection
方法将要使用的节点提取到曲面(代码级别)。
P.S。使用这些“内部”,“外部”术语不是官方的,仅为方便起见。