简体   繁体   English

Neural Network Inception v3不会创建标签

[英]Neural Network Inception v3 doesn't create labels

I am facing an error with testing the Neural Network Inception v3 and Tensorflow. 我在测试Neural Network Inception v3和Tensorflow时遇到错误。

I avtivated and trained the model this way with Python: 我使用Python通过这种方式来培养和训练模型:

source tf_files/tensorflow/bin/activate
python tf_files/tensorflow/examples/image_retraining/retrain.py --bottleneck_dir=tf_files/bottlenecks --how_many_training_steps 500 --model_dir=tf_files/inception --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir tf_files/data

Which gave me the following error: 这给了我以下错误:

CRITICAL:tensorflow:Label kiwi has no images in the category testing. 严重:张量流:标签猕猴桃在类别测试中没有图像。

Kiwi is a folder which contains images. Kiwi是一个包含图像的文件夹。 The other folder called Apples gave me no error. 另一个名为Apples文件夹没有给我任何错误。 But maybe it occurs because it contains less than 20 images. 但可能是因为它包含的图像少于20张而发生的。 And it doesn't create a file called retrained_labels.txt . 而且它不会创建一个名为retrained_labels.txt的文件。

So when executing following following command it gives me an error saying it couldn't find the file, which is mentioned above. 因此,当执行以下命令时,它给了我一个错误,提示它找不到文件,如上所述。

python image_label.py apple.jpg

Everything is in it's folders and the content of image_label.py is: 一切都在它的文件夹中,并且image_label.py的内容是:

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))

I solved it. 我解决了 The error occured because the folder hadn't got enough images to train with . 发生错误是因为文件夹没有足够的图像来训练 So after increasing the number of the images from 14 to 38 it gives me the predictions! 因此,在将图像数量从14个增加到38个后,我得到了预测!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM