Tensorflow docker容器预测不会在容器外工作

时间:2016-08-21 16:44:30

标签: python ubuntu docker tensorflow

我浏览了Tensorflow for poets Tutorial然后对我自己的图像进行了分类,这些都是在提供的TF docker容器中完成的。该模型具有中低到90的验证准确度。有一个单独的文件可以预测新图像(下图)。

我复制了文件' retrained_labels_corn.txt'和' retrained_graph_corn.pd'以及将下面看到的代码保存到目录中的文件(并更改了文件路径),看看我是否可以在docker容器中进行预测。我确保给它一个有效的图像路径作为系统arg,但它总是将图像预测为一个概率高于97%的类。当我在docker容器中做同样的事情时一切正常。我甚至尝试将标签文件指向与docker容器使用的完全相同的文件,并且我得到了相同的结果,它始终预测一个具有高度确定性的类。

我做错了什么?

import tensorflow as tf, sys

image_path = sys.argv[1]

# Read in the image_data
image_data = tf.gfile.FastGFile(image_path, 'rb').read()

# Loads label file, strips off carriage return
label_lines = [line.rstrip() for line 
               in tf.gfile.GFile("/tf_files/retrained_labels_corn.txt")]

# Unpersists graph from file
with tf.gfile.FastGFile("/tf_files/retrained_graph_corn.pb", 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
_ = tf.import_graph_def(graph_def, name='')

with tf.Session() as sess:
# Feed the image_data as input to the graph and get first prediction
softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')

predictions = sess.run(softmax_tensor, \
         {'DecodeJpeg/contents:0': image_data})

# Sort to show labels of first prediction in order of confidence
top_k = predictions[0].argsort()[-len(predictions[0]):][::-1]

for node_id in top_k:
    human_string = label_lines[node_id]
    score = predictions[0][node_id]
    print('%s (score = %.5f)' % (human_string, score))

我使用的是Ubuntu版本16.04和TF 0.10

0 个答案:

没有答案