
嵌入式AI
深度学习在arm,tx2等硬件上的应用
农夫山泉2号
关于交流可以发邮件:778961303@qq.com
展开
-
【LLM】——mllm端侧大模型推理框架解读
端侧大模型推理框架mllm详细解读原创 2025-03-21 10:57:51 · 281 阅读 · 0 评论 -
【个人开源】——从零开始在高通手机上部署sd(二)
从零基础开始,在自己的高通手机(骁龙8 gen1+)上用NPU跑文生图stable diffusion模型。包含:- 高通qnn下载安装- sd模型浮点/量化导出- 在高通手机上用cpu跑浮点模型,htp跑量化模型原创 2025-02-21 21:14:57 · 670 阅读 · 0 评论 -
【个人开源】——从零开始在高通手机上部署sd(一)
从零基础开始,在自己的高通手机(骁龙8 gen1+)上用NPU跑文生图stable diffusion模型。包含:- 高通qnn下载安装- sd模型浮点/量化导出- 在高通手机上用cpu跑浮点模型,htp跑量化模型原创 2025-02-21 21:10:08 · 676 阅读 · 0 评论 -
【TVM】——ubuntu18.04源码编译TVM
tvm源码安装原创 2024-10-10 17:35:29 · 573 阅读 · 0 评论 -
【opencv】——为arm平台交叉编译
为arm32,64位系统编译opencv,方便做一些AI模型推理的处理+可视化等功能。原创 2024-09-26 17:25:20 · 791 阅读 · 0 评论 -
【网络结构】——TinyViT 一种transformer的蒸馏方案
TinyViT是一种新型的小型transformer,它们高效且可以在大规模数据集上进行预训练。TinyViT通过在预训练期间应用蒸馏来传输知识,将大型预训练模型的知识转移到小型模型中,同时使小型模型能够获得大量预训练数据的红利。TinyViT在ImageNet-1k上的最高准确率为84.8%,仅使用21M参数,与在ImageNet-21k上预训练的Swin-B相当,但使用的参数少4.2倍。此外,增加图像分辨率后,TinyViT可以达到86.5%的准确度,略优于Swin-L,同时仅使用11%的参数。原创 2023-07-06 22:22:28 · 3613 阅读 · 1 评论 -
【剪枝】——BIT-PRUNING一种稀疏的无乘法点积方法
点积是神经网络中的一个核心构建模块。然而,点积中的乘法(mult)消耗了大量的能量和空间成本,这对于在资源受限的边缘设备上部署提出了挑战。在这项研究中,我们通过利用无乘法、稀疏的点积来实现节能的神经网络。我们首先将整数权重和激活之间的点积重新公式化为由加法后跟位移(add-shift-add)组成的等效操作。在这种公式化中,加法操作的数量等于二进制格式中整数权重的位数。原创 2023-06-24 15:17:27 · 269 阅读 · 0 评论 -
【人脸检测】——Sample and Computation Redistribution for Efficient Face Detection论文简读
在非受控人脸检测方面已经取得了巨大的进步,但低计算成本和高精度的高效人脸检测仍然是一个开放的挑战。作者提出了两种简单而有效的方法:样本再分配(SR)和计算再分配(CR)。在WIDER FACE上进行的大量实验表明,所提出的SCRFD家族具有SOTA的效率和精度权衡。特别是,SCRFD-34GF的性能比最好的竞争对手TinaFace高出3.86%,同时在VGA分辨率图像的gpu上比TinaFace快3倍以上。图像分辨率的影响直接将分类网络的主干用于目标检测是次优的。原创 2023-04-28 15:13:56 · 866 阅读 · 0 评论 -
【海思】——hisi3516不支持relu6的激活函数
mobilenetv2采用的是relu6的激活函数,转caffe是ok的验证和测试通过。原创 2023-04-17 19:05:51 · 204 阅读 · 0 评论 -
【网络结构】——FastViT论文浅读
fastvit,最近transformer和卷积设计的融合,这导致了模型准确性和效率的稳步提高。在这项工作中,我们介绍了FastViT,一种混合视觉变压器架构,它获得了最先进的延迟-准确性折衷。为此,我们引入了一种新颖的令牌混合算子RepMixer,它是FastViT的一个构建块,使用结构重参数化来降低内存访问成本,通过删除网络中的跳过连接。我们进一步应用训练时过参数化和大核卷积来提高准确性,并经验证明这些选择对延迟的影响最小。原创 2023-03-30 21:16:38 · 1549 阅读 · 3 评论 -
【多任务】——多任务的训练优化
多任务,训练。转载 2023-03-30 19:04:02 · 626 阅读 · 0 评论 -
【caffe】——ubuntu安装pycaffe
ubuntu安装pycaffe原创 2023-03-03 18:14:50 · 411 阅读 · 0 评论 -
【c/c++】——Linux/cmake 静态库合并
linux/cmake 静态库合并原创 2022-12-22 23:20:06 · 1415 阅读 · 0 评论 -
【pytorch】——exporting the operator relu6 to onnx opset version 13 is not supported
pytorch,f.relu6导出到onnx原创 2022-12-13 15:51:10 · 1196 阅读 · 0 评论 -
【mnn】——PTQ离线量化代码梳理
mnn离线量化代码梳理原创 2022-12-09 13:58:40 · 528 阅读 · 0 评论 -
【hisi3516】——IVE yuv420转bgr planner(代码)
用hisi3526dv300 的ive硬件加速yuv2bgr的转换过程原创 2022-12-07 14:58:01 · 601 阅读 · 0 评论 -
[windows nfs]-如何在Windows上搭建NFS服务器实现开发板与Windows之间的文件共享
windows nfs转载 2022-12-01 12:36:08 · 347 阅读 · 0 评论 -
【hisi】——hisi开发相关文档
海思mpp原创 2022-11-24 14:05:23 · 193 阅读 · 0 评论 -
【conda】——pack打包32位python,在服务器报 no such file
ubuntu上执行32位python原创 2022-11-18 16:52:21 · 521 阅读 · 0 评论 -
【图像】——图像存储策略:Packed与Planar
图像存储策略:Packed与Planar转载 2022-11-16 21:29:44 · 153 阅读 · 0 评论 -
【cmake】——verbose=1 看编译的具体配置
cmake用如下命令编译,可以看具体的配置项。原创 2022-11-02 15:59:24 · 1894 阅读 · 0 评论 -
【ncnn】——windows下编译自拓展的后端
ncnn需要安装vs 2017/2019,然后在开始菜单中可以不用编译,,根据自己的需求配置。执行完命令后,在 build 文件夹下生成一个ncnn.sln的 vs 项目。可以用 vs studio 打开,进行编译,测试。原创 2022-10-27 16:01:08 · 751 阅读 · 0 评论 -
【onnx】——onnx模型计算图解析
整个定义是主要就是这三个部分最外层是ModelProto,记录一些模型信息:ir版本,来自pytorch/tensorflow,… , 和GraphProto////};GraphProto才是核心,里面主要包含:1.保存const tensor + 预训练的参数。2.保存每个op 输入,输出 tensor 名字。}NodeProto}所以整个计算图的node的输入,来自于node.input,node的输出记录在node.output。原创 2022-10-12 11:14:02 · 3064 阅读 · 0 评论 -
【ncnn】——param中-23300的意思
ncnn1. -23300的意思在ncnn的模型结构参数中,有-23300的参数,如:codeSlice Split_394 1 2 886 887 888 -23330=8,3,40,40,80,3,40,40,32 -23300=2,80,-233这表示=后面的参数是一个数组参数,2,80,-233表示有2个变量,80,-233。解析时候的代码:bool is_array = id <= -23300;if (.原创 2022-04-21 17:17:56 · 683 阅读 · 0 评论 -
【问题】——ncnn的modelbinfromdatareader::load时,通过flag_struct来判断数据类型的
ncnn, modelbinfromdatareader通过flag_struct来判断数据类型的,但是不知道在哪里有对应的代码,为啥要这么做可以判断数据类型。。union { struct { unsigned char f0; unsigned char f1; unsigned char f2; unsigned char f3; }; unsigned int tag; } f.原创 2022-04-14 15:06:37 · 464 阅读 · 0 评论 -
【问题】——ncnn中mat的refcount(引用计数)为啥要用指针,而且放在data的后面
ncnn按理来说直接用用一个int变量就ok,类的周期结束也会自己释放,为啥要弄成指针???codeif (total() > 0){ size_t totalsize = alignSize(total() * elemsize, 4); if (allocator) data = allocator->fastMalloc(totalsize + (int)sizeof(*refcount)); else data = fa.原创 2022-04-12 16:34:33 · 389 阅读 · 0 评论 -
【问题】——ncnn layer load_param时,每个param具体的index在那里定义的?
codenum_output = pd.get(0, 0);kernel_w = pd.get(1, 0);kernel_h = pd.get(11, kernel_w);dilation_w = pd.get(2, 1);dilation_h = pd.get(12, dilation_w);stride_w = pd.get(3, 1);stride_h = pd.get(13, stride_w);pad_left = pd.get(4, 0);pad_right = pd.get(原创 2022-04-10 23:10:42 · 474 阅读 · 1 评论 -
【神经网络量化】——非线性激活函数sigmoid,tanh的量化推理
sigmoid, tanh, 量化推理简介在嵌入式设备,ARM的M系列,或者存硬件实现网络的推理,这时就需要所有的运算都需要用int型(int8,int15)或者自定义的数据类型。这里包括常见的conv2d,devconv2d…等算子,relu,prelu,sigmoid,tanh等非线性激活函数。预备知识神经网络的量化负数补码sigmoid/tanh量化推理这里我们以ARM的CMSIS_5中的代码进行原理和代码的解说。1. 查表法sigmoid,tanh及类似的非线性激活函数都是.原创 2022-03-16 20:39:36 · 4934 阅读 · 1 评论 -
【opencv】——parallel_for的使用例子(附代码)
opencv, parral_for测试对比纯for循环和parral_for的计算耗时。code#include <iostream>#include <opencv2/core.hpp>#include<stdlib.h> class ParallelAdd : public cv::ParallelLoopBody{public: ParallelAdd(int* src1, int* src2, int* out, int blc, int.原创 2022-03-16 14:03:30 · 3605 阅读 · 0 评论 -
【TFLM】——编译hello world
TFLM1. clone项目git clone https://github.com/tensorflow/tflite-micro.git2. 编译hello world项目这一步需要下载一些第三方的软件,需要翻墙。make -f tensorflow/lite/micro/tools/make/Makefile third_party_downloads # 下载软件,下载软件make -f tensorflow/lite/micro/tools/make/Makefile test.原创 2022-03-09 10:01:11 · 812 阅读 · 0 评论 -
【c】short | long | char自动类型转换的两个例子
short, char, 小端字节序,自动类型转换,补码1. 例子编译器用的gcc 7.1这里直接上一个例子进行解释code#include <stdio.h>int main(int argc, char**argv){ double c = 3.1415926; signed short b = c; printf("b value: %d \n", b); signed long v = -129; signed char u; .原创 2022-02-21 17:46:31 · 1591 阅读 · 0 评论 -
【sigmoid】——sigmoid的量化 | 近似计算
相关资料https://blog.youkuaiyun.com/weixin_43327597/article/details/107196976原创 2022-02-18 17:24:40 · 1223 阅读 · 0 评论 -
【onnx】——pytorch转onnx 手动添加不支持的算子
onnx,pytorch原创 2022-01-21 10:48:19 · 2114 阅读 · 1 评论 -
【pytorch】——Unable to cast from non-held to held instance (T& to Holder<T>)
pytorch报错报错再将pytorch模型转换成onnx模型的时候,报错Unable to cast from non-held to held instance (T& to Holder)解决方案当再vscode中不打断点调试的时候,就不会报这个错误。原创 2022-01-20 19:26:25 · 1625 阅读 · 0 评论 -
【pytorch】——报错 exporting the operator pixel_unshuffle to onnx opset version 11 is not supported
pytorch, onnx问题:pytorch的模型转onnx的时候,报错:exporting the operator pixel_unshuffle to onnx opset version 11 is not supported但是用pytorch.jit.trace则是可以导出的。解决方案自己写一个pixel_unshuffle导出到onnx的插件使用pytorch jit.trace追踪出来的模型。...原创 2022-01-20 15:36:20 · 1971 阅读 · 2 评论 -
【CNN】——对硬件优化的AdderNet加法网络简读
code:https://github.com/huawei-noah/AdderNet来自:华为摘要:为了降低计算复杂度和能量负担,我们提出了一种新的使用加法器卷积神经网络(AdderNet)的极简硬件结构,其中原始的卷积只被加法器核替换。为了最大限度地挖掘潜在的能源消耗,我们探索了具有共享尺度因子方法的AdderNet的低位量化算法,并为AdderNet设计了特定的和通用的硬件加速器。结果表明,具有int8/int16量化的加法器核也表现出较高的性能,同时消耗较少的资源(理论上∼为81%)。此.原创 2022-01-19 20:59:04 · 1173 阅读 · 0 评论 -
【mnn】——卷积结果验证
mnn, python1. mnn的卷积计算mnn 卷积计算的输入tensor采用NC4HW4的数据格式,卷积计算的结果也是NC4HW4格式,所以一个通道,一个通道,计算4个元素。这里debug前4个元素进行对比。2. python 计算结果python采用同样的输入,weight,bias,然后debug前4个通道的数据可以看到前4个结果是一样的...原创 2022-01-12 14:23:45 · 834 阅读 · 0 评论 -
【mnn】——输入tensor NC4HW4的可视化检查
mnn, NC4HW41. NC4HW4的排布请参考:NC4HW4数据的排布2. 打印检查输入tensor 为1x3x180x640,格式为NC4HW4。可以看到第二个数据恰好隔了HxW原创 2022-01-12 10:47:58 · 865 阅读 · 0 评论 -
【flatbuffer】——TypeError: EndVector() takes 1 positional argument but 2 were given
flatbuffer版本1.12.0描述采用flatbuffer的python接口进行操作的时候报错解决EndVector is a method, so the first parameter is the object itself, and the second parameter is len(buf). Just remove the len(buf) part.原创 2022-01-08 12:00:19 · 791 阅读 · 0 评论 -
【cmake】——在windows上用cmake,使用vs studio的编译器
cmake, vs studio,方法1用vs studio的终端x64 Native Tools Command ...,cd到项目的目录进行编译:编译项目和ubuntu编译的参数有一些区别mkdir build && cd buildcmake -G ”NMake Makefiles“ ..nmake方法2将vs studio的编译器cl.exe添加到环境变量中,再重启电脑。cl.exe的路径:C:\Program Files (x86)\Microsoft .原创 2022-01-06 16:39:27 · 2294 阅读 · 0 评论