- 博客(69)
- 资源 (8)
- 收藏
- 关注
原创 罗德里格斯公式
1.点乘A⃗⋅B⃗=∣A⃗∣∣B⃗∣cos⟨A⃗,B⃗⟩\vec{A} \cdot \vec{B} = \left | \vec{A} \right | \left | \vec{B} \right | cos\left \langle \vec{A}, \vec{B} \right \rangle A⋅B=ABcos⟨A,B⟩对应几何意义:向量A⃗\vec{A}A在向量B⃗\vec{B}B方向上投影与∣B⃗∣\left | \vec{B} \right |B的乘积,反应两个向量在方向
2023-09-23 14:05:50
1064
原创 MILN:多层在位学习网络
MILN(multilayer In-place Learning Network)应该是继LCA算法提出后,翁巨扬教授提出的第一个发育网络(developmental network),旨在提出一种通用的在位学习( In-place Learning)网络来模拟大脑皮层抽取特征。在位学习是一种来自于基因等效性原则的生物学概念,每一个神经元都采用共同的基因程序(LCA),独立负责自身在环境......
2022-06-18 13:46:50
1585
原创 OpenCV学习笔记(二):读取mnist数据集
1.mnist简介数据集主页链接:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp://yann.lecun.com/exdb/mnist/有四个文件:train-images-idx3-ubyte: 训练集图像 60000张 尺寸28x28灰度图train-labels-idx1-ubyte: 训练集标签 60000个 [0,9]t10k-images-idx3-ubyte:
2022-05-22 00:43:39
974
原创 MNN学习笔记(七):修改ONNX的resize算子转换器
一、需求最近在转换一个超分模型的时候,对应动态输入需要让模型自动推理当前层的尺度,但是Resize层在转MNN的时候,参数已经被写死,转换成功的模型没办法去自适应的匹配当前图像输入大小,超分模型的输出与预期不一致。二、处理流程2.1 初步定位首先用MNN的官方工具MNNV2Basic.out,具体用法可以参考资料[1],打印出每一层的输入和输出, 然后观察输入输出的文件大小变化,可以看到第56层的输入从1615k跳变成了1k,初步断定是滴56层出了问题;2.2 再次确认用Netr
2021-05-16 10:33:13
3388
2
原创 MNN学习笔记(六):配置visual studio项目
这个其实很简单,原因是MNN项目组已经提供了编译好的库:1.下载编译好的MNN库下载地址为:https://github.com/alibaba/MNN/releases下载两个文件:Source.code和MNN-WindowsX64-0.2.1.7.zip2.在visual studio上进行配置注意visual studio版本为2017,我习惯把这些库都跟openc...
2020-02-05 22:40:43
3339
20
原创 MNN学习笔记(五):caffe物体检测模型部署
1.模型转换首先下载caffe模型,下载地址为:https://github.com/C-Aniruddh/realtime_object_recognition然后将caffe模型转换成mnn模型:./MNNConvert -f CAFFE --modelFile MobileNetSSD_deploy.caffemodel --prototxt MobileNetSSD_d...
2020-02-05 21:10:56
2856
5
原创 MNN框架学习(四):tensorflow图像分类模型部署
1.模型转换先下载tensorflow的模型,下载地址为:https://github.com/tensorflow/models/tree/master/research/slim然后,使用编译好的MNN工具转换模型:./MNNConvert -f TF --modelFile mobilenet_v1_1.0_224_frozen.pb --MNNModel mobilen...
2020-02-05 20:58:56
3518
原创 MNN框架学习(三):内存管理
不知道是不是借鉴了NCNN的代码,感觉差不多,具体可以参考大佬对于ncnn内存管理代码的解析,具体见参考资料[1],讲的非常清楚,这里只是做一个学习笔记。具体代码为source/core/MNNMemoryUtils.c文件:1、对齐内存分配接口:使用malloc函数// 使用malloc函数来进行内存分配// 传入待分配内存大小,及对齐内存大小void *MNNMemoryAl...
2020-01-27 13:07:32
2367
原创 tvm学习笔记(八):卷积操作
对于卷积神经网络中,卷积操作可能是最常见操作,具体原理可以去学习一下Andred NG的课程,建议搞计算机视觉方向的都去刷一波,具体过程如图1所示: 图1 'VALID'方式卷积操作过程其实就是卷积核与图像待操作区域进行乘加操作,常见的卷积操作有两种形式,第一种是'VALID'的方式,如图1所示,第二种是'SAME'的方式,区别在于'SAME'方式会对输入进行填充,以保...
2020-01-01 23:40:47
1860
原创 tvm学习笔记(七):简约操作
所谓Reduction(简约操作)其实就是说经过该操作之后,输入向量的维度会减小,例如,对输入向量沿着某个维度进行求和,先看一下python的代码:import numpy as npa = np.random.normal(size=(3, 4)).astype('float32')print(a)print(a.sum(axis=1))打印结果为:这里就是沿着第二个...
2019-12-05 01:48:08
2215
3
原创 tvm学习笔记(六):数据类型及形状
据说tvm会支持训练,然后沐神他们为了推广tvm,专门对tvm重写了文档d2l-tvm,具体详见资料[1],下面就是对着沐神他们写的文档做的学习记录:1.tvm的数据类型我们在声明placeholder的时候,可以显式的指定数据的类型,如:'float16', 'float64', 'int8','int16', 'int64'等import tvmA = tvm.placehol...
2019-11-30 00:39:02
3360
4
原创 ncnn源码学习(十):添加layer
给ncnn的网络添加layer分为两种情况:1.模型转换之后,某些layer没有转换成功:如,shufflenetV2中,param文件只转换到了fc这一个layer:这时需要添加一层softmax,可以先对param文件中转换成功的layer做推理,然后手动添加一个softmax层: ncnn::Extractor ex = shufflenetv2.create_...
2019-11-25 19:44:57
2442
原创 ncnn源码学习(九):常见操作算子(下)
1.reorg算子:重排这个源自于yolo V2,如ssd网络一样,它会将不同层级不同大小的特征图concat到一起,用于多尺度检测,不同的是yolo V2使用reorg的方式来进行实现,如图所示:已知输入大小为:2W*2W,需要得到W*W大小的特征图,那么就可以按照上面的方式,每次取4个元素分配给4个子特征图,按照这种方式从左到右,从上到下遍历就可以得到4个W*W的特征图,多通道的与...
2019-11-21 23:13:46
3315
原创 ncnn源码学习(八):常见操作算子(中)
1.阈值操作:Threshold 将大于阈值的元素置为1,将小于或等于阈值的元素置为0。对应代码为:int Threshold::forward_inplace(Mat& bottom_top_blob, const Option&...
2019-11-06 00:31:35
4994
原创 ncnn源码学习(七):常见操作算子(上)
1.绝对值操作:AbsVal 对应代码:// 前向在位传播int AbsVal::forward_inplace(Mat& bottom_top_blob, const Option& opt) const{ // 输入的width,he...
2019-10-07 20:01:52
4515
4
原创 MNN框架学习(二):使用MNN部署模型
这里代码其实大部分来自于xiongdongzhang的github项目:https://github.com/xindongzhang/MNN-APPLICATIONS,个人觉得学习一个新东西,最开始的步骤应该是用起来,至于怎么用起来,可以先参考一下别人怎么用的,将代码拆分、重组和封装,通过这一系列的过程,我们就可以基本掌握这个新东西的使用方法,会用之后,才考虑原理的学习。 这里...
2019-10-01 23:41:41
19776
原创 ncnn源码学习(六):模型量化原理笔记
1.请直接去学习大佬们的文章:章小龙的:Int8量化-介绍(一):https://zhuanlan.zhihu.com/p/58182172Int8量化-python实现以及代码分析(二):https://zhuanlan.zhihu.com/p/58208691虫叔的:Int8量化-ncnn社区Int8重构之路(三):https://zhuanlan.zhihu.com/p/...
2019-09-28 16:17:45
10223
8
原创 MNN框架学习(一):编译及使用
1.编译MNNConvert工具: 需要预先安装protobuf >= 3.1.0, protobuf >= 3.0 gcc版本高于4.9cd MNN/tools/converter./generate_schema.shmkdir buildcd build && cmake .. && make -j4# ...
2019-09-28 12:28:04
12773
11
原创 ncnn源码解析(五):执行器Extractor
前面大致总结了一下ncnn模型载入的流程,模型载入之后,就是新建一个Extractor,然后设置输入,获取输出: ncnn::Extractor ex = net.create_extractor(); ex.set_num_threads(4); ex.input("data", in); ncnn::Mat out; ex.extract("...
2019-09-09 20:56:11
7447
原创 ncnn源码解析(四):模型权重载入
前面已经大致总结了ncnn的param文件载入,根据param文件创建网络结构,然后通过bin文件载入每一层对应的网络参数。这里就总结一下,如何载入每一层的参数: 我们常用的网络参数载入的接口为: // 从二进制文件中载入模型 int load_model(const char* modelpath); 找到对应net.cpp...
2019-09-08 19:29:00
3561
3
原创 ncnn源码学习(三):解析layer层
这个地方应该是ncnn除了优化(int8量化和汇编代码优化)之外,最难理解的部分了。前面已经讲了如果将param文件中特殊参数解析成参数字典ParamDict,而在net中,layer会根据参数字典,这里如果我们直接看layer载入参数的代码,可能就很懵逼了: // layer载入param int lr = layer->load_para...
2019-09-07 19:52:45
4352
13
原创 ncnn源码学习(二):参数字典paramdict
上一节讲到,在使用load_param接口载入参数时,需要用参数字典ParamDict来解析.param文件中的特定参数,如: 0=64 1=3 11=3 5=1 6=1728 那么参数字典具体如何进行解析的?我们首先看一下paramdict.h文件中定义的数据成员变量: // parameters struct { ...
2019-09-06 20:12:47
3332
2
原创 ncnn源码学习(一):载入param文件
前段时间,分别尝试了使用腾讯开源的深度学习推理框架ncnn、陈天奇大神团队开源的tvm,及最新的阿里开源mnn,就好用程度来说,腾讯的ncnn当之无愧的第一名,这里大致写一下源码学习心得体会,方便后面进一步学习。 ncnn接口函数 在使用ncnn来部署模型时,我们会预先定义一个Net对象,然后使用load_param和load_m...
2019-09-05 21:26:43
7953
原创 tvm学习笔记(五):tvm工作原理
一、总体流程: TVM的工作流程:首先,将网络表示成统一的表示形式(Intermediate Representation),并进行一些可重用的图优化;然后,利用不同的后端生成对应设备代码,如图1所示。 图1 tvm 工...
2019-07-19 23:25:43
10203
3
原创 tvm 学习笔记(四):tvm量化pytorch的onnx模型
1、模型来源:github链接:https://github.com/qfgaohao/pytorch-ssd2、保存成onnx模型运行convert_to_caffe2_models.py脚本>> python convert_to_caffe2_models.py3、使用onnx-simplifier工具:安装使用:>> pip3 ins...
2019-07-03 15:44:33
5700
9
原创 tvm学习笔记 (三):载入onnx格式模型
1、模型转换import onnximport numpy as npimport tvmimport tvm.relay as relayonnx_model = onnx.load('test.onnx')target = tvm.target.create('llvm')input_name = '0' # change '1' to '0'shape_dict...
2019-06-05 21:12:46
10917
MNN测试程序所需要的模型和测试图片压缩包.rar
2020-02-05
可被ncnn框架载入的yolo2模型
2018-10-23
tensorflow_gpu-1.5.1-cp35-cp35m-win_amd64
2018-07-17
opencv 3.4.1+contrib+VS2010 x86 编译库
2018-06-12
caffe VGGNet 人脸识别
2017-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人