title: How to feed Cifar10 trained model with my own image and get label as output?
body: <p>I am trying to use the trained model based on the <a href="https://www.tensorflow.org/versions/r0.8/tutorials/deep_cnn/index.html" rel="nofollow">Cifar10 tutorial</a> and would like to feed
  it with an external image 32x32 (jpg or png).<br>
  My goal is to be able to get <strong>the label as an output</strong>.
  In other words, I want to feed the Network with a single jpeg image of size 32 x 32, 3 channels with no label as an input and have the inference process <em>give me</em> the <code>tf.argmax(logits, 1)</code>.<br>
  Basically I would like to be able to use the trained cifar10 model on an external image and see what class it will spit out.</p>
  
  <p>I have been trying to do that based on the Cifar10 Tutorial and unfortunately always have issues. especially with the Session concept and the batch concept.</p>
  
  <p>Any help doing that with Cifar10 would be greatly appreciated. </p>
  
  <p>Here is the implemented code so far with compilation issues :</p>
  
  <pre class="lang-py prettyprint-override"><code>#!/usr/bin/env python
  
  from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  
  from datetime import datetime
  import math
  import time
  
  import tensorflow.python.platform
  from tensorflow.python.platform import gfile
  import numpy as np
  import tensorflow as tf
  
  import cifar10
  import cifar10_input
  import os
  import faultnet_flags
  from PIL import Image
  
  FLAGS = tf.app.flags.FLAGS
  
  def evaluate():
  
    filename_queue = tf.train.string_input_producer(['/home/tensor/.../inputImage.jpg'])
  
    reader = tf.WholeFileReader()
    key, value = reader.read(filename_queue)
  
    input_img = tf.image.decode_jpeg(value)
  
    init_op = tf.initialize_all_variables()
  
  # Problem in here with Graph / session
    with tf.Session() as sess:
      sess.run(init_op)
  
      coord = tf.train.Coordinator()
      threads = tf.train.start_queue_runners(coord=coord)
  
      for i in range(1): 
        image = input_img.eval()
  
      print(image.shape)
      Image.fromarray(np.asarray(image)).show()
  
  # Problem in here is that I have only one image as input and have no label and would like to have
  # it compatible with the Cifar10 network
      reshaped_image = tf.cast(image, tf.float32)
      height = FLAGS.resized_image_size
      width = FLAGS.resized_image_size
      resized_image = tf.image.resize_image_with_crop_or_pad(reshaped_image, width, height)
      float_image = tf.image.per_image_whitening(resized_image)  # reshaped_image
      num_preprocess_threads = 1
      images = tf.train.batch(
        [float_image],
        batch_size=128,
        num_threads=num_preprocess_threads,
        capacity=128)
      coord.request_stop()
      coord.join(threads)
  
      logits = faultnet.inference(images)
  
      # Calculate predictions.
      #top_k_predict_op = tf.argmax(logits, 1)
  
      # print('Current image is: ')
      # print(top_k_predict_op[0])
  
      # this does not work since there is a problem with the session
      # and the Graph conflicting
      my_classification = sess.run(tf.argmax(logits, 1))
  
      print ('Predicted ', my_classification[0], " for your input image.")
  
  
  def main(argv=None):
    evaluate()
  
  if __name__ == '__main__':
    tf.app.run() '''
  </code></pre>