Ich verwende das Tensorflow for Poets-Tutorial, um ein Bild zu klassifizieren. Ich benutze den unten stehenden Code, um ein Bild zu klassifizieren, würde aber statt eines JPEGs ein numpliges Array als Bild einspeisen. Wie würde sich der Code ändern?Ein numpliges Array-Bild klassifizieren
import tensorflow as tf
import sys
# change this as you see fit
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.txt")]
# Unpersists graph from file
with tf.gfile.FastGFile("/tf_files/retrained_graph.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))
image_data = tf.gfile.FastGFile(image_path, 'rb').read()
- Wenn ich nicht aus einer Datei zu lesen, ich denke ich nicht, dies brauchen.
predictions = sess.run(softmax_tensor, {'DecodeJpeg/contents:0': image_data})
- Ich weiß, dass ich diesen Aspekt des feed_dict nicht überschreiben muss, aber was soll ich stattdessen tun?
Insgesamt, wie kann ich sicherstellen, dass ein Nparray, das ich ein Bild darstellt, für die Vorhersage richtig verwendet werden?