我尝试用OpenVINO API 2.0来推断我的1D CNN模型。
我的输入是一个CSV文件,有几个信号记录,所以我使用model.reshape
设置一个动态输入大小。
import openvino.runtime as ov
import numpy as np
core = ov.Core()
signal = np.genfromtxt('A4C_LV_V.csv')
model = core.read_model(model="saved_model.xml")
model.reshape([1, signal.size])
compiled_model = core.compile_model(model, "CPU")
infer_request = compiled_model.create_infer_request()
input_tensor = ov.Tensor(array=signal, shared_memory=True)
infer_request.set_input_tensor(input_tensor)
infer_request.start_async()
infer_request.wait()
output = infer_request.get_output_tensor()
output_buffer = output.data
但是我遇到了下面的错误。
RuntimeError: [ PARAMETER_MISMATCH ] Failed to set input blob with precision: FP64, if CNNNetwork input blob precision is: FP32
如果我注释第11行:infer_request.set_input_tensor(input_tensor)
.
错误将被解决,推理将成功。
我没有删除set_input_tensor
的感觉,仍然可以正常工作。
这里是我的推理文件。
(ZIP文件包含3个IR文件和1个输入文件)
看来你的模型精度是不正确的。请确保您的模型已正确转换为正确的精度。
OpenVINO支持三种常用的模型精度:FP32、FP16和INT8
如需进一步资料,请参阅此处和此处。
如果您想为模型提供一个大小不同于模型输入形状的输入,OpenVINO确实提供了在运行时更改模型输入形状的功能。使用重塑方法改变单输入模型的输入形状。详情请参阅此处
有些模型支持在编译前更改输入形状。对于这个用例,您可以这样配置模型。