首页 > 解决方案 > 如何加载使用 make_image_classifier 工具保存的 Tensorflow 模型

问题描述

我使用名为 make_image_classifier https://github.com/tensorflow/hub/tree/master/tensorflow_hub/tools/make_image_classifier的 Tensorflow 工具制作了一个自定义图像分类器模型

现在模型被导出到一个 .pb 文件以及 2 个文件夹、资产和变量中。

问题是如何使用此自定义模型进行预测?这些天我浏览了所有 TF 文档并尝试了许多不同的方法,但没有找到解决方案。

当他没有找到明确的信息时,有人写了它,所以他创建了一个指南,但它对我也不起作用。在“步骤 3”中,它是加载模块并使用自定义模型对图像进行分类所需的所有代码。问题是我需要知道输入和输出节点的名称,而我没有它们。我尝试使用 Netron 找到它们,但没有成功。 https://heartbeat.fritz.ai/automl-vision-edge-exporting-and-loading-tensorflow-saved-models-with-python-f4e8ce1b943a

import tensorflow as tf
export_path = '/Users/aayusharora/Aftershoot/backend/loadmodel/models/'
with tf.Session(graph=tf.Graph()) as sess:
  tf.saved_model.loader.load(sess, ['serve'], export_path)
path = '/Users/aayusharora/Aftershoot/backend/sampleImage.jpg'
with open(path, "rb") as img_file:
  y_pred = sess.run('tile:0', feed_dict={'normalised_input_image_tensor': [img_file.read()] })
print(y_pred)

有人可以给我一个关于如何加载保存的模型并使用它来进行预测的线索吗?

标签: pythontensorflow

解决方案


保存和加载模型 | 张量流核心

您可以使用保存的模型重新加载:

new_model = tf.keras.models.load_model('<path-to-export-path>/my_model')

假设您将这些文件放在一起(assets, variables.pb文件),您似乎确实拥有:

ls <path-to-export-path>/my_model

my_model
assets  saved_model.pb  variables

new_model应该和原版一样。要检查其架构:

new_model.summary()

推荐阅读