关于mnn模型输出的数据杂乱无章问题
.
·
这俩天顺便用了阿里的MNN:
https://github.com/alibaba/MNN
还挺好用的,就是不知道带有opencl后端的引擎怎么用Python API调用
我遇到一个小坑,输出的数据是这样杂乱无章的:
而不是这样的:
反复debug,发现:
原来是模型的输出不能直接 getData()
output_tensor = interpreter.getSessionOutput(session) # 获得模型的输出
tmp_output = MNN.Tensor((1, 2, 224, 224), # 用来做输出的临时变量
MNN.Halide_Type_Float,
np.ones([1, 2, 224, 224]).astype(np.float32),
MNN.Tensor_DimensionType_Caffe)
output_tensor.copyToHostTensor(tmp_output) # 将模型的输出给 tmp_output 变量
x = tmp_output.getNumpyData()[0] # 获取 numpy 格式的数据
这段代码没啥问题,但要把最后一行:
x = tmp_output.getNumpyData()[0] # 获取 numpy 格式的数据
替换为:
x = output_tensor.getNumpyData()[0] # 获取 numpy 格式的数据
就会变成杂乱无章的数据,可能是数据先行后列之类的出问题了??
他俩都是 MNN.Tensor
的数据类型
所以我感觉,MNN模型输出的Tensor,要先转化为对应的格式MNN.Tensor_DimensionType_Caffe
,才能打印出来
或者说这一步就是转化数据格式的:
tmp_output = MNN.Tensor((1, 2, 224, 224), # 用来做输出的临时变量
MNN.Halide_Type_Float,
np.ones([1, 2, 224, 224]).astype(np.float32),
MNN.Tensor_DimensionType_Caffe)

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)