title: Tensorflow Different ways to Export and Run graph in C++
body: <p>For importing your trained network to the C++ you need to export your network to be able to do so. After searching a lot and finding almost no information about it, it was clarified that we should use <a href="https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/freeze_graph.py" rel="noreferrer">freeze_graph()</a> to be able to do it.</p>
  
  <p>Thanks to the new 0.7 version of Tensorflow, they added <a href="https://www.tensorflow.org/versions/r0.7/api_docs/python/train.html#export_meta_graph" rel="noreferrer">documentation</a> of it. </p>
  
  <p>After looking into documentations, I found that there are few similar methods, can you tell what is the difference between <code>freeze_graph()</code> and:
   <code>tf.train.export_meta_graph</code> as it has similar parameters, but it seems it can also be used for importing models to C++ (I just guess the difference is that for using the file output by this method you can only use <code>import_graph_def()</code> or it's something else?)</p>
  
  <p>Also one question about how to use <code>write_graph()</code>:
  In documentations the <code>graph_def</code> is given by <code>sess.graph_def</code> but in examples in <code>freeze_graph()</code> it is <code>sess.graph.as_graph_def()</code>. What is the difference between these two? </p>
  
  <p>This question is related to <a href="https://github.com/tensorflow/tensorflow/issues/615" rel="noreferrer">this issue.</a></p>
  
  <p>Thank you!</p>