1

我使用此脚本将 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)

但仍然得到同样的错误。我必须做些什么来解决这个问题?

4

1 回答 1

0

您可以尝试在此处运行转换脚本吗: https ://github.com/microsoft/onnxconverter-common/blob/master/onnxconverter_common/float16.py

如果您仍然遇到问题,请在该 repo 上打开一个问题。

于 2021-03-11T20:21:03.790 回答