2016-10-12 5 views
1

Mit Bezug auf diesen Beitrag:Tensorflow inception_v2_resnet Inferenz

Using pre-trained inception_resnet_v2 with Tensorflow

Ich versuche, das inception_resnet_v2 Modell zu verwenden, die Prognosen der Bilder auch zu bekommen. Deshalb habe ich mir das Snippet angeschaut und versucht, es zum Laufen zu bringen, aber es heißt "input_tensor" ist nicht definiert. Fehlt etwas in dem erwähnten Code oder kann mir irgendjemand einen Hinweis geben, wie es funktioniert/Wie definiert man die Variable input_tensor? Hier

ist das Snippet wieder:

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

checkpoint_file = 'inception_resnet_v2_2016_08_30.ckpt' 
sample_images = ['dog.jpg', 'panda.jpg'] 
#Load the model 
sess = tf.Session() 
arg_scope = inception_resnet_v2_arg_scope() 
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) 
for image in sample_images: 
    im = Image.open(image).resize((299,299)) 
    im = np.array(im) 
    im = im.reshape(-1,299,299,3) 
    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)) 

Dank

Antwort

1

Der Code-Snippet erscheint für input_tensor jede Definition fehlt. Mit Blick auf den definition der inception_resnet_v2() Funktion, die Tatsache, dass der Tensor in einem feed_dict verwendet wird, und die Tatsache, dass die Größe des Bildes ist 299 x 299, könnten Sie input_tensor wie folgt definieren:

input_tensor = tf.placeholder(tf.float32, [None, 299, 299, 3]) 
+0

Danke, Es klappt! – mimie