Neural Network Inception v3 doesn't create labels
Question: I am facing an error with testing the Neural Network Inception v3 and
Tensorflow.

I avtivated and trained the model this way with 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. The other folder called `Apples`
gave me no error. But maybe it occurs because it contains less than 20 images.
And it doesn't create a file called `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:

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


Answer: 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!

