我使用此脚本将 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)
但仍然得到同样的错误。我必须做些什么来解决这个问题?