I am studying the way the TFsaved data.
For saved_model format, one textbook mentions it saves “computational graph” wherein , in Training checkpoints | TensorFlow Core, it says it saves “serialized description of computation”. Are they referring to same? I am assuming so. Thanks.,
Take a look at:
1 Like
I see following files are created as saved_model:
p297_saved_model.h5
├── p297_saved_model.h5/assets
├── p297_saved_model.h5/saved_model.pb
└── p297_saved_model.h5/variables
├── p297_saved_model.h5/variables/variables.data-00000-of-00001
└── p297_saved_model.h5/variables/variables.index
Is there a tool to read back without loading? I see those are binary files.
Read back? What is your goal?
Well, i was thinking to see what is there without loading the model. But it may not be necessary.
Regardless, I found an answer to my question while reading a back. It turns out tf comes with handy cli tool (output below):
saved_model_cli show --dir p297 --all
MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:
signature_def['__saved_model_init_op']:
The given SavedModel SignatureDef contains the following input(s):
The given SavedModel SignatureDef contains the following output(s):
outputs['__saved_model_init_op'] tensor_info:
dtype: DT_INVALID
shape: unknown_rank
name: NoOp
Method name is:
signature_def['serving_default']:
The given SavedModel SignatureDef contains the following input(s):
inputs['flatten_input'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 28, 28)
name: serving_default_flatten_input:0
The given SavedModel SignatureDef contains the following output(s):
outputs['dense_2'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 30)
name: StatefulPartitionedCall:0
Method name is: tensorflow/serving/predict
Defined Functions:
Function Name: '__call__'
Option #1
Callable with:
Argument #1
inputs: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='inputs')
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #2
Callable with:
Argument #1
flatten_input: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='flatten_input')
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #3
Callable with:
Argument #1
inputs: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='inputs')
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Option #4
Callable with:
Argument #1
flatten_input: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='flatten_input')
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Function Name: '_default_save_signature'
Option #1
Callable with:
Argument #1
flatten_input: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='flatten_input')
Function Name: 'call_and_return_all_conditional_losses'
Option #1
Callable with:
Argument #1
inputs: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='inputs')
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #2
Callable with:
Argument #1
inputs: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='inputs')
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
Option #3
Callable with:
Argument #1
flatten_input: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='flatten_input')
Argument #2
DType: bool
Value: False
Argument #3
DType: NoneType
Value: None
Option #4
Callable with:
Argument #1
flatten_input: TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='flatten_input')
Argument #2
DType: bool
Value: True
Argument #3
DType: NoneType
Value: None
2 Likes