【发布时间】:2020-09-01 19:27:46
【问题描述】:
我正在使用 ssd_mobilenet_v2_coco_2018_03_29 预训练的 Tensorflow 模型。我想将输入更改为固定大小,并将其保存在 saved_model.pb (我正在使用需要这种格式的 Neuron Compiler)。
这是我如何将输入张量更改为固定大小:
graph = tf.Graph()
with graph.as_default():
fixed_image_tensor = tf.placeholder(tf.uint8, shape=(None, 300, 300, 3), name='image_tensor')
graph_def = tf.GraphDef()
with tf.io.gfile.GFile(frozen_pb_file, 'rb') as f:
serialized_graph = f.read()
graph_def.ParseFromString(serialized_graph)
tf.import_graph_def(graph_def, name='', input_map={"image_tensor:0": fixed_image_tensor})
现在我使用tf.saved_model.simple_save 将修改后的图形保存为saved_model.pb 格式:
image_tensor = graph.get_tensor_by_name('image_tensor:0')
boxes_tensor = graph.get_tensor_by_name('detection_boxes:0')
scores_tensor = graph.get_tensor_by_name('detection_scores:0')
classes_tensor = graph.get_tensor_by_name('detection_classes:0')
num_detections_tensor = graph.get_tensor_by_name('num_detections:0')
sess = tf.Session(graph=graph)
tf.saved_model.simple_save(
session=sess,
export_dir='model/',
inputs={image_tensor.name: image_tensor},
outputs={
boxes_tensor.name: boxes_tensor,
scores_tensor.name: scores_tensor,
classes_tensor.name: classes_tensor,
num_detections_tensor.name: num_detections_tensor
}
)
代码创建如下目录(变量为空):
|-model/
|---variables/
|---saved_model.pb
saved_model.pb 只有 370 字节,并且不能包含任何实际信息。我也尝试了tf.saved_model.Builder,比如this 和this,但仍然得到完全相同的结果。
我仍然可以像往常一样使用sess 进行推理,没有任何问题。我做错了什么?还有其他方法吗?我正在使用 TensorFlow 1.15.0。
【问题讨论】:
标签: python tensorflow