当前位置:网站首页>关于mnn模型输出的数据杂乱无章问题
关于mnn模型输出的数据杂乱无章问题
2022-08-03 23:45:00 【氵文大师】
这俩天顺便用了阿里的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)
边栏推荐
猜你喜欢
随机推荐
XSLT – 编辑 XML概述
代码随想录笔记_动态规划_416分割等和子集
leetcode/子串中不能有重复字符的最长子串
OPC UA 与IEC61499 深度融合(1)
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
2022/8/3 Exam Summary
我的祖国
电子邮件安全或面临新威胁!
SolidEdge ST8安装教程
In V8 how arrays (with source code, picture and text easier to understand)
跨域的学习
rsync 基础用法
jav一键生成数据库文档
绕任意轴旋转矩阵推导
【并发编程】ReentrantLock的lockInterruptibly()方法源码分析
RSS feeds WeChat public - feed43 asain
使用unbound在RHEL7上搭建DNS服务
ros mavros stereo读取rosbag并记录IMU和图片到文件夹
MCS-51单片机,定时1分钟,汇编程序
AOSP CameraLatencyHistogram的原理与使用