我有一个用tf.estimator训练的模型,它在训练后输出如下
serving_input_fn = tf.estimator.export.build_raw_serving_input_receiver_fn(
feature_placeholders)
classifier.export_savedmodel(
r'./path/to/model/trainedModel', serving_input_fn)
这给了我一个saved_model.pb
和一个包含权重的文件夹作为.data
文件。我可以使用重新加载保存的模型
predictor = tf.contrib.predictor.from_saved_model(r'./path/to/model/trainedModel')
我想在android上运行这个模型,这需要模型为.pb
格式。如何在Android平台上冻结此预测器?
我没有部署到Android,因此您可能需要稍微自定义步骤,但这是我这样做的方式:
<tensorflow_root_installation>/python/tools/freeze_graph.py
,--input_saved_model_dir=<path_to_the_savedmodel_directory>
参数运行--output_node_names=<full_name_of_the_output_node>
(你可以从graph.pbtxt
获取输出节点的名称,虽然这不是最舒服的方式),--output_graph=frozen_model.pb
<tensorflow_root_installation>/python/tools/optimize_for_inference.py
。或者,您可以查找Graph Transform Tool并有选择地应用优化。在步骤1结束时,您已经拥有一个没有变量的冻结模型,然后您可以部署到Android。