From what I‘ve gathered so far, there are several different ways of dumping a TensorFlow graph
into a file and then loading it into another program, but I haven‘t been able to find clear examples/information on how they work. What I already know is this:
- Save the model‘s variables into a checkpoint file (.ckpt) using a
tf.train.Saver()
and restore them later (source) - Save a model into a .pb file and load it back in using
tf.import_graph_def()
(source) - Load in a model from a .pb file, retrain it, and dump it into a new .pb file using Bazel (source)
- Freeze the graph to save the graph and weights together (source)
- Use
as_graph_def()
to save the model, and for weights/variables, map them into constants (source)
However, I haven‘t been able to clear up several questions regarding these different methods:
- Regarding checkpoint files, do they only save the trained weights of a model? Could checkpoint files be loaded into a new program, and be used to run the model, or do they simply serve as ways to save the weights in a model at a certain time/stage?
- Regarding
Regarding Bazel, can it only save into/load from .pb files for retraining? Is there a simple Bazel command just to dump a graph into a .pb?
Regarding freezing, can a frozen graph be loaded in using
The Android demo for TensorFlow loads in Google‘s Inception model from a .pb file. If I wanted to substitute my own .pb file, how would I go about doing that? Would I need to change any native code/methods?
In general, what exactly is the difference between all these methods? Or more broadly, what is the difference between
In short, what I‘m looking for is a method to save both a graph (as in, the various operations and such) and its weights/variables into a file, which can then be used to load the graph and weights into another program, for use (not necessarily continuing/retraining).
Documentation about this topic isn‘t very straightforward, so any answers/information would be greatly appreciated.
tf.train.write_graph()
and then execute it? – mnicky yesterdayGraphDef
saved bymrry yesterday