ckpt转pd
python3 -m tensorflow.python.tools.freeze_graph --input_checkpoint=./Parser/shuffle_resnet/resnet_v1_50_s_reorder.ckpt --output_graph=./Parser/shuffle_resnet/res_frozen.pb --output_node_names=resnet_v1_50/block3/unit_6/bottleneck_v1/conv1/BatchNorm/moving_mean --checkpoint_version=1 --input_binary=true --input_meta_graph=./Parser/shuffle_resnet/resnet_v1_50_s_reorder.ckpt.meta
view pd
python3 -m tensorflow.python.tools.import_pb_to_tensorboard --model_dir=./Parser/shuffle_resnet/res_frozen.pb --log_dir=./log
view ckpt
import tensorflow as tf
from tensorflow.summary import FileWriter
sess = tf.Session()
tf.train.import_meta_graph("./resnet_v1_50_s_reorder.ckpt.meta")
FileWriter("__tb", sess.graph)
view tensorboard
tensorboard --logdir=目录名
ckpt_to_pd
python version=3.6.5
import tensorflow.compat.v1 as tf
#infer_pb = 'models/inception/inception_v3_inf_graph.pb' # Your .meta file
infer_pb='shuffle_resnet/resnet_v1_50_s_reorder.ckpt.meta'
output_node_names = ['resnet_v1_50/predictions/Reshape_1'] # Output_node_names
g_def=tf.GraphDef()
with open(infer_pb,"rb") as f:
g_def.ParseFromString(f.read())
graph=tf.Graph()
with graph.as_default():
tf.import_graph_def(g_def,name="")
with tf.Session(graph=graph) as sess:
# Restore the graph
var_list={}
var_to_shape_map=tf.pywrap_tensorflow.NewCheckpointReader('shuffle_resnet/resnet_v1_50_s_reorder.ckpt').get_variable_to_shape_map()
for key in var_to_shape_map:
try:
tensor=sess.graph.get_operation_by_name(key).outputs[0]
except KeyError:
continue
var_list[key]=tensor
tf.train.Saver(var_list=var_list).restore(sess,'shuffle_resnet/resnet_v1_50_s_reorder.ckpt')
tf.graph_util.remove_training_nodes(
sess.graph_def,
)
print("\n".join([n.name for n in sess.graph_def.node]))
# Freeze the graph
frozen_graph_def = tf.graph_util.convert_variables_to_constants(
sess,
sess.graph_def,
output_node_names)
# Save the frozen graph
with open('res_frozen.pb', 'wb') as f:
f.write(frozen_graph_def.SerializeToString())