Why Is Inceptionv3 Machine Learning Model Not Recognized on My Project

Why is Inceptionv3 Machine Learning model not recognized on my project?

I had the same problem. I solved by add inceptionv3 in bridging header.

How can I make the inception-v3 model pre-trained from Imagenet (classify_image.py) in the Tensorflow tutorial importable as a module?

In the end I managed to use the code from the SO article reffered to in the update in the original question. I modified the code with the additional im = 2*(im/255.0)-1.0 from the answer of said SO question, some line to fix PIL on my computer plus a function to convert classes to human readable labels (found on github), link to that file below. I made it a callable function that takes a list of images as input and outputs a list of labels and predict values. If you'd like to use it, this is what you have to to:

  1. Install the latest Tensorflow version (1.0 at the moment, which is needed).
  2. git clone https://github.com/tensorflow/models/where you want the models.
  3. Put this checkpoint file from the SO question I referred to earlier (needs to be extracted, of course) in the directory of your project.
  4. Put this text file (the human readable labels) in the directory of your project.
  5. Use this code from the SO question with some modifications from my side, put it in a .py file in your project:

    import tensorflow as tf
    slim = tf.contrib.slim
    import PIL as pillow
    from PIL import Image
    #import Image
    from inception_resnet_v2 import *
    import numpy as np

    with open('imagenet1000_clsid_to_human.txt','r') as inf:
    imagenet_classes = eval(inf.read())

    def get_human_readable(id):
    id = id - 1
    label = imagenet_classes[id]

    return label

    checkpoint_file = './inception_resnet_v2_2016_08_30.ckpt'

    #Load the model
    sess = tf.Session()
    arg_scope = inception_resnet_v2_arg_scope()
    input_tensor = tf.placeholder(tf.float32, [None, 299, 299, 3])
    with slim.arg_scope(arg_scope):
    logits, end_points = inception_resnet_v2(input_tensor, is_training=False)
    saver = tf.train.Saver()
    saver.restore(sess, checkpoint_file)

    def classify_image(sample_images):
    classifications = []
    for image in sample_images:
    im = Image.open(image).resize((299,299))
    im = np.array(im)
    im = im.reshape(-1,299,299,3)
    im = 2*(im/255.0)-1.0
    predict_values, logit_values = sess.run([end_points['Predictions'], logits], feed_dict={input_tensor: im})
    #print (np.max(predict_values), np.max(logit_values))
    #print (np.argmax(predict_values), np.argmax(logit_values))
    label = get_human_readable(np.argmax(predict_values))
    predict_value = np.max(predict_values)
    classifications.append({"label":label, "predict_value":predict_value})

    return classifications


Related Topics



Leave a reply



Submit