之前写了一篇文章训练了一个模型,并转换成mnn模型 ,并且使用了python进行调用

不过并没有使用c++进行调用

模型还是使用那篇文章的模型,调用代码如下:

#include <iostream>
#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>
#include<MNN/Interpreter.hpp>
#include<MNN/ImageProcess.hpp>using namespace std;
using namespace cv;
using namespace MNN;
int main()
{   auto net = std::shared_ptr<MNN::Interpreter>(MNN::Interpreter::createFromFile("E:\\vs2019\\first\\first\\model-flow.mnn"));//创建解释器cout << "Interpreter created" << endl;ScheduleConfig config;config.numThread = 8;config.type = MNN_FORWARD_CPU;auto session = net->createSession(config);//创建sessioncout << "session created" << endl;//读取图片cv::Mat image = cv::imread("C:\\Users\\Administrator\\Pictures\\397.jpg");cv::Mat img_resized;cv::resize(image, img_resized, cv::Size(180,180));auto inTensor = net->getSessionInput(session, NULL);auto outTensor = net->getSessionInput(session, NULL);auto _Tensor = MNN::Tensor::create<float>(inTensor->shape(), NULL, MNN::Tensor::TENSORFLOW);//cout << _Tensor->elementSize() << endl;for (int i = 0; i < _Tensor->elementSize(); i++) {_Tensor->host<float>()[i] = image.data[i];}inTensor->copyFromHostTensor(_Tensor);inTensor->printShape();//cout << *(inTensor->host<float>()+1) << endl;//_Tensor->print();_Tensor->printShape();//推理net->runSession(session);auto output= net->getSessionOutput(session, NULL);MNN::Tensor feat_tensor(output, output->getDimensionType());output->copyToHostTensor(&feat_tensor);feat_tensor.print();waitKey(0);return 0;
}

运行结果如下:

注意的是,数据结果和之前使用python调用的结果并不一致,应该是赋值数据的时候rgb的顺序颠倒了

之所以不是使用很多文章使用memcpy的方式读取input张量,因为这个在我的机器一直memcpy拷贝不成功 ,数据为系统自动初始化的数值,会导致每次的结果不一致,是随机数

c++读取mnn模型相关推荐

  1. mnn模型从训练-转换-预测

    之前写过一个文章转换mnn模型 但是没有从头开始,而是直接使用的一个模型,本文想直接从头到尾直接做一下 训练模型的代码如下: 注意:此代码必须tf2.3及其以上才能运行,以下的代码均在tf2.3运行的 ...

  2. OSG读取obj模型坐标变化的问题

    首先需要强烈吐槽一下OSG这个设计,在加载obj模型的时候,会默认将模型绕x轴逆时针旋转90度,让我整整找了两天的原因....这个设计真的太智障了.... 我们来看一下,有一个正方体的obj模型,用记 ...

  3. OPENGL读取OBJ模型(包围盒、法向等计算)附加源码与资源下载页面

    OPENGL读取OBJ模型 标签(空格分隔): OPENGL/C++ 哈哈,先贴出下载链接好吧.下载页面 首先大家不要害怕,读取obj模型听上去很高端很麻烦,其实当你真正了解obj模型的格式,以及OP ...

  4. 关于mnn模型输出的数据杂乱无章问题

    这俩天顺便用了阿里的MNN: https://github.com/alibaba/MNN 还挺好用的,就是不知道带有opencl后端的引擎怎么用Python API调用 我遇到一个小坑,输出的数据是 ...

  5. QT通过VTK读取stl模型并着色 Mac

    1.对于在Mac下如何配置VTK,或者是qt下的.pro文件里面的引入包名,请参考我的上一篇博客Mac+CMake3.13.2+Qt5.12.0+VTK8.1.2 配置安装 2.读取stl文件 3.创 ...

  6. 37、记录使用 Swin Transformer主干网络去实现分类,并转化NCNN、TNN、MNN模型以及部署

    基本思想:最近手中有个swim transformer模型,想移植手机端进行推理一下,随手记录一下遇到的问题涉及简单的转ncnn tnn mnn的流程性问题 一.首先我fork了大佬的代码https: ...

  7. tensorflow随笔-保存与读取使用模型

    1.MNIST是深度学习的经典入门demo,他是由6万张训练图片和1万张测试图片构成的,每张图片都是2828大小(如下图),而且都是黑白色构成(这里的黑色是一个0-1的浮点数,黑色越深表示数值越靠近1 ...

  8. opengl读取obj模型并绘制2.0

    此2.0版本是相较于我第一篇读取的文章而言的,第一篇文章只是一个简单的读取绘制程序,只能绘制单一物体,不实用. 2.0版本采用链式方式,绘制多个物体.链式方法的好处就是能够方便的添加材质数据(本文未讲 ...

  9. Java读取Obj模型

    Java写OpenGL项目时总要去加载一个Obj模型,或者导出导入操作,没必要用一大堆第三方包,一个类完事,兼容Window和Android 测试可以打开3DMax导出的Obj格式 导出的Obj也可以 ...

最新文章

  1. 设CPU中各部件及其相互连接关系如下图所示。图中W是写控制标志,R是读控制标志,R 1 和R 2 是暂存器
  2. Building your training into your researcing
  3. 计算机网络相关的知识,计算机网络知识整理
  4. 海纳百川、有容乃大:从4个角度解读京东3C新方向
  5. 《终身成长》读书笔记(part8)--努力的过程并不只包含努力本身
  6. Android:四大架构的优缺点,你真的了解吗?
  7. jeewx-api-1.0.1(捷微微信接口API)版本正式发布
  8. lua语言和python_[动态语言]python和lua中的三元操作符and-or
  9. 【XSY2307】树的难题
  10. pymongo基本方法使用笔记
  11. spark开发环境配置
  12. MATLAB如何打开chm文件
  13. scrapy框架之spider
  14. 傻瓜式自制鼠标光标,超简单
  15. 英语语法形容词的顺序
  16. 虚拟机macos系统共享文件
  17. 如何编写一个程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
  18. dreamweaver中灵活的调整表格的宽高
  19. 字节-测试开发-面试
  20. 一次真实的应急响应案例(Centos)——暴力破解、替换ps命令、留多个后门——事件复现(含靶场环境)

热门文章

  1. 数据库关键字(保留字)
  2. WPS JS宏表格定位实例
  3. 滴水三期:day04.3-标志寄存器
  4. SSH2远程连接例子
  5. 小程序地图标记点自定义标签的实现
  6. 大数据入门学习:SQL与NOSQL数据库
  7. ubuntu小技巧6--如何修复Ubuntu系统引导项
  8. 如何搭建一个集群项目
  9. ax.patches 表示什么?
  10. 微信小程序picker多列选择器:mode = multiSelector