Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does one inspect variables in a checkpoint file in TensorFlow when TensorFlow can't find the tools attribute?

I was trying to inspect checkpoints using the code at inspect_checkpoint.py. However, I wasn't able to have it work because they didn't really provide an example. I tried the simplest thing I thought would work:

tf.python.tools.inspect_checkpoint.print_tensors_in_checkpoint_file(file_name='./tmp/mdl_ckpt',tensor_name='',all_tensors='')

however I get that python has no attribute tools:

AttributeError: module 'tensorflow.python' has no attribute 'tools'

it seems like a (embarrassingly) trivial bug/issue. Does someone know what is going on? Why can't it find tools? Also, even if it did find it, how would one run the function provided in that file?


Unfortunately, the very related question did not really provide an answer of how to get around this issue. The question is here How can find the variable names that saved in tensorflow checkpoint?

like image 380
Charlie Parker Avatar asked Jan 26 '17 05:01

Charlie Parker


4 Answers

Try this:

from tensorflow.python.tools.inspect_checkpoint import print_tensors_in_checkpoint_file
print_tensors_in_checkpoint_file(file_name='./tmp/mdl_ckpt', tensor_name='', all_tensors=False)

The all_tensors argument was added since Tensorflow 0.12.0-rc0.

like image 77
sagunms Avatar answered Oct 24 '22 05:10

sagunms


Well, isn't inspect_checkpoint.py a binary?

Something like this might work:

bazel run tensorflow/python/tools:inspect_checkpoint -- --file_name=YOUR_CKPT

EDIT:

Or without bazel:

Find where tensorflow is installed and run the command with python:

python PATH_TO_VENV/lib/python3.6/site-packages/tensorflow/python/tools/inspect_checkpoint.py --file_name=YOUR_CKPT

For all options, see the file itself: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/tools/inspect_checkpoint.py

like image 31
guinny Avatar answered Oct 24 '22 04:10

guinny


As of latest stable TensorFlow version, 1.13, and in the upcoming TF 2.0, to most straightforward way to inspect a checkpoint is:

path = './tmp/mdl_ckpt' 
get_checkpoint = tf.train.latest_checkpoint(path) 
#this retrieves the latest checkpoin file form path, but it also can be set manually

inspect_list = tf.train.list_variables(get_checkpoint) 

This creates a list of all variable names in given checkpoint

like image 29
Sharky Avatar answered Oct 24 '22 06:10

Sharky


You could also use the command line interface that uses inspect_checkpoint.

like image 21
drevicko Avatar answered Oct 24 '22 04:10

drevicko