使用Intel®低精度优化工具时common.Model的入参类型咨询
common.Model 构造函数入参规则
- 构造函数可接受的入参类型没有跨后端的统一标准,要求完全匹配当前对接的推理后端,核心支持两类合法入参:
- SavedModel目录路径字符串:仅适用于TensorFlow框架的加载场景,要求传入的路径必须指向SavedModel格式的根目录,目录下需包含
saved_model.pb结构文件、variables存储子目录,不能单独指向目录内的单个pb文件。 - 内存中已初始化的可推理模型实例:适用于PyTorch、ONNX Runtime等后端场景,需要先在代码流程里完成对应模型的加载步骤,将生成的有效推理模型实例传入构造函数,不能直接传模型文件的路径字符串。
- SavedModel目录路径字符串:仅适用于TensorFlow框架的加载场景,要求传入的路径必须指向SavedModel格式的根目录,目录下需包含
当前编写代码的适配说明
- 你当前编写的代码
quantizer.model = common.Model('../models/saved_model'),仅在加载TensorFlow SavedModel根目录的场景下符合入参要求 - 常见入参报错的触发原因:跨后端硬套字符串传参写法——比如加载PyTorch模型时直接传入
.pt权重文件路径、加载ONNX模型时没有提前通过onnx库加载成模型对象就传入构造函数,都会直接触发类型不匹配的校验错误。
快速校验方法:调用common.Model之前,先打印待传入内容的类型,对照对应后端的示例做匹配:TensorFlow场景传字符串路径、PyTorch场景传
torch.nn.Module实例、ONNX场景传onnx.ModelProto对象,三类场景的入参类型完全不通用,无法直接复用写法。
内容的提问来源于stack exchange,提问作者Athira - Intel
相关产品推荐
相关产品推荐

