You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenVINO推理时将图片转FP16出现字符串转浮点数错误如何解决

问题解答

报错根因

你当前的写法是直接将图片路径字符串传入np.array()尝试转浮点格式,并没有实际读取图片的像素数据,因此触发了字符串无法转换为浮点数的报错。你之前使用随机数时传入的是已经生成的数值数组,替换真实图片时需要先完成图片读取、预处理操作,再生成符合要求的数值数组。

正确处理步骤

  • 先使用图片读取工具加载本地图片得到像素数组
  • 按照模型输入要求完成尺寸调整、通道转换、维度重排、归一化等预处理操作
  • 最后将预处理完成的数组转为FP16格式即可

适配OpenVINO 2021.4的示例代码

import cv2
import numpy as np
from openvino.inference_engine import TensorDesc, Blob

# 1. 读取本地图片
img = cv2.imread(r"C:\MyImagePath\XXX.png")
# 2. 缩放至模型要求的输入尺寸
img = cv2.resize(img, (224, 224))
# 3. 通道转换:OpenCV默认读取为BGR格式,若模型训练用的是RGB格式需做转换,可按需调整
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 4. 维度重排:从HWC(高、宽、通道)格式转为模型要求的NCHW(批次、通道、高、宽)格式
img = img.transpose(2, 0, 1)
img = np.expand_dims(img, axis=0)
# 5. 预处理归一化,和模型训练时的预处理逻辑保持一致即可,可按需调整
img = img / 255.0
# 6. 转为FP16格式
processed_input = img.astype(np.float16)

# 后续推理逻辑和之前一致
tensor_description = TensorDesc(precision="FP16", dims=(1, 3, 224, 224), layout='NCHW')
input_blobs = Blob(tensor_description, processed_input)

注意事项

如果你的模型训练阶段有自定义预处理逻辑(比如减均值、乘缩放系数等),需要在转FP16之前补充对应操作,避免推理结果出现偏差。

内容的提问来源于stack exchange,提问作者TseHsien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:15:00