问题描述
我使用此脚本将 onnx 模型从 float32 转换为 float16。
from onnxruntime_tools import optimizer
optimized_model = optimizer.optimize_model("model_fixed.onnx",model_type='bert_tf',num_heads=12,hidden_size=768,opt_level=99)
optimized_model.use_dynamic_axes()
optimized_model.convert_model_float32_to_float16()
optimized_model.save_model_to_file("model_fixed_fp16.onnx")
但在推理时我收到此错误。
[ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from
./model_fixed_fp16.onnx Failed:This is an invalid model.
Type Error: Type 'tensor(float16)' of input parameter
(conv2d_1/convolution__24:0) of operator (Conv) in node (batch_normalization_1/FusedBatchnormV3_1:0_nchwc) is invalid
我也使用这个将输入 dtype 更改为 float 16
pimage = np.array(np.expand_dims(pimage,axis=0),dtype=np.float16)
解决方法
您可以尝试在此处运行转换脚本吗: https://github.com/microsoft/onnxconverter-common/blob/master/onnxconverter_common/float16.py
如果您仍然遇到问题,请在该存储库中打开一个问题。