title: Single Image Inference in Tensorflow [Python]
body: <p>I have already converted a pre-trained .ckpt file to .pb file freezing the model and saving the weighs as well. What I am trying to do now is to make a simple inference using that .pb file and extract and save output image. The model is a (Fully Convolutional Network for Semantic Segmentation) downloaded from here : <a href="https://github.com/MarvinTeichmann/KittiSeg" rel="noreferrer">https://github.com/MarvinTeichmann/KittiSeg</a> . So far I have managed to, load the image, set the default tf graph and import the graph defined by the model on that, read the input and the output tensors and run the session (error here).</p>
  
  <pre><code>import tensorflow as tf
  import os
  import numpy as np
  from tensorflow.python.platform import gfile
  from PIL import Image
  
  # Read the image &amp; get statstics
  img=Image.open('/path-to-image/demoImage.png')
  img.show()
  width, height = img.size
  print(width)
  print(height)
  
  #Plot the image
  #image.show()
  
  with tf.Graph().as_default() as graph:
  
          with tf.Session() as sess:
  
                  # Load the graph in graph_def
                  print("load graph")
  
                  # We load the protobuf file from the disk and parse it to retrive the unserialized graph_drf
                  with gfile.FastGFile("/path-to-FCN-model/FCN8.pb",'rb') as f:
  
                                  #Set default graph as current graph
                                  graph_def = tf.GraphDef()
                                  graph_def.ParseFromString(f.read())
                                  #sess.graph.as_default() #new line
  
                                  # Import a graph_def into the current default Graph
                                  tf.import_graph_def(graph_def, name='')
  
                                  # Print the name of operations in the session
                                  #for op in sess.graph.get_operations():
  
                                      #print "Operation Name :",op.name            # Operation name
                                      #print "Tensor Stats :",str(op.values())     # Tensor name
  
                                  # INFERENCE Here
                                  l_input = graph.get_tensor_by_name('Placeholder:0')
                                  l_output = graph.get_tensor_by_name('save/Assign_38:0')
  
                                  print "l_input", l_input
                                  print "l_output", l_output
                                  print
                                  print
  
                                  # Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles.                              
                                  result = sess.run(l_output, feed_dict={l_input : img})
                                  print(results)
  
                                  print("Inference done")
  
                                  # Info
                                  # First Tensor name : Placeholder:0
                                  # Last tensor name  : save/Assign_38:0"
  </code></pre>
  
  <p>Can the error come from the format of the image (e.g should I convert .png to another format?). Is it another fundamental error?</p>