【AI模型训练与部署】
文章平均质量分 79
主要介绍有关CV的深度学习模型的训练 和 在不同平台上的转换与部署。
All_In_gzx_cc
这个作者很懒,什么都没留下…
展开
-
【模型压缩】模型剪枝详解
CNN在实际应用中的部署主要受以下几个方面制约。1)模型大小的限制CNN强大的表示能力来自其数百万可训练参数。这些参数以及网络结构信息需要存储在磁盘上,并在推理期间加载到内存中。例如,在ImageNet上存储一个典型的CNN会消耗超过300MB的空间,这对嵌入式设备来说是一个巨大的资源负担。2) 运行时内存在推理期间,CNN的中间激活/响应甚至可能比存储模型参数占用更多内存空间,即使批量大小为1。这对于高端GPU来说不是问题,但对于许多计算能力较低的应用程序来说,这是负担不起的。3) 计算操作数。原创 2024-01-26 15:34:36 · 1162 阅读 · 0 评论 -
【模型压缩】模型压缩的几种方式概述
如同前面提到的,我们希望将一个强大复杂的AI模型减量、压缩后,得到一个迷你、简单的模型,但仍要能维持原有的推论精度或者只有些微(0%到指定%)的下降,就像我们平常看到的JPG影像、MP4影片,虽然采大幅度破坏性压缩,但人眼是很难分辨其品质差异的。这样可以得到几项好处,包括。(FP8, e5m2, e4m3, 1 Byte)在推论时其精度下降幅度可控制在一定程度内,同时可让储存空间和内存使用量减少1/2到3/4,若加上有支持SIMD或平行运算指令集[1]还可让运算量提升1.x ~ 3.x倍,一举多得。转载 2024-01-26 14:13:46 · 527 阅读 · 0 评论 -
【数据去噪】SG-多项式平滑算法
在处理工业数据的时候,工业数据有数据颗粒细,噪声大,量大,随着测量点的增加,数据维度高,复杂性高,而且关联性强,不过这个关联性是相对的,因为有时候数据噪声较大,显示不出来这种关联性。最近了解的五点三次平滑,因为工作中遇到了用 五点三次平滑算法 平滑 车道线模型检测出的 车道线的点集,去除噪声点,方便后处理里拟合车道线方程。引用文献的解释:“一般来说,在数据采集系统中采集到的数据往往叠加有噪声。噪声分为两种,一类为周期性的,一类为不规则的。前者代表为50 Hz 的工频干扰,后者代表为随机信号。”原创 2022-11-28 14:59:04 · 4418 阅读 · 2 评论 -
【回归Loss】解决回归不平衡的Balanced MSE loss简介
为了填补不平衡回归方法的空白,我们提出了Balanced MSE损失函数,从统计的视角解决标签的不平衡。我们针对不平衡回归的问题设定,从统计的视角下重新思考了常用的MSE损失函数,发现MSE会受到不平衡标签分布的影响而做出不准确的预测。为解决这个问题,我们提出了Balanced MSE损失函数,并给出了灵活的实现形式,包括不需要预先计算标签分布的实现。Balanced MSE在一维与多维的不平衡回归问题上都超过了最好的现有方法。转载 2022-11-23 17:51:32 · 2433 阅读 · 2 评论 -
pytorch快速上手(8)-----pytorch优化器简介
更新模型参数。在更新参数时一般使用梯度下降的方式去更新。梯度下降常见的基本概念导数:函数在指定坐标轴上的变化率;方向导数:指定方向上的变化率;梯度:一个向量,方向为方向导数取得最大值的方向。所以梯度是一个向量,方向是导数取得最大值的方向,也就是增长最快的方向,而梯度下降是沿着梯度的负方向去变化。一类是基于SGD及其优化,另一类是Per-parameter adaptive learning rate methods(逐参数自适应学习率方法),如AdaGrad、RMSProp、Adam等。原创 2022-11-23 16:52:02 · 1147 阅读 · 0 评论 -
【pytorch优化器】Adam优化算法详解
转载自:https://blog.csdn.net/weixin_39228381/article/details/108548413仅作学习记录。转载 2022-11-22 17:51:53 · 5275 阅读 · 0 评论 -
【pytorch优化器】Adagrad、RMSProp优化算法详解
模型每次反向传导都会给各个可学习参数p计算出一个偏导数g_t,用于更新对应的参数p。通常偏导数g_t不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的值,处理过程用函数F表示(不同的优化器对应的F的内容不同),即,然后和学习率lr一起用于更新可学习参数p,即。转载 2022-11-21 17:18:41 · 2768 阅读 · 1 评论 -
PyTorch常用代码集合
本文代码基于PyTorch 1.0版本,需要用到以下包import collectionsimport osimport shutilimport tqdmimport numpy as npimport PIL.Imageimport torchimport torchvision1.基础配置检查pytorch版本torch.__version__ # PyTorch versiontorch.version.cuda #转载 2021-02-25 17:11:31 · 1017 阅读 · 0 评论 -
【训练技巧】远程服务器训练模型防止断掉的处理方式
可以找到你运行的进程ID,若要结束运行就kill id。2、回车执行,再回车,窗口中会显示一个进程号。,关掉Xshell后就不行了。原创 2022-11-21 09:24:55 · 845 阅读 · 2 评论 -
【pytorch训练】tensorboardX安装及使用
做为Tensorflow中强大的可视化工具,已经被普遍使用。但针对其余框架,例如Pytorch,以前一直没有这么好的可视化工具可用,PyTorch框架自己的可视化工具是Visdom,但是这个API需要设置的参数过于复杂,而且功能不太方便也不强大,所以有人写了一个库函数来让PyTorch也可以使用tensorboard。转载 2022-11-16 17:48:03 · 9194 阅读 · 1 评论 -
【python第三方库】easydict的使用
在 Python 中当我们需要访问字典中的元素的时候,我们需要使用类似的形式来进行使用。例如现在我们有如下的字典d = {'x' : 1 , 'y' : 2 } } print(d [ 'foo' ]) # 如何想要访问字典的元素需要这么写 print(d [ 'bar' ] [ 'y' ]) # 如果想要继续访问字典中字典的元素需要使用二维数组现在我们希望可以使用类似访问属性的方式,来访问字典里的变量,例如使用d.foo这种形式来访问。这个时候就可以使用easydict这个模块了。原创 2022-11-07 16:10:47 · 4481 阅读 · 1 评论 -
【pytorch基础】读取的图片扩充维度的几种方式
【代码】【pytorch基础】读取的图片扩充维度的几种方式。转载 2022-11-01 20:30:23 · 1127 阅读 · 0 评论 -
【基础知识】tiff格式图片介绍及读取
TIFF格式也叫TIF,属于位图格式,全名是。TIFF格式和JPEG及PNG都是属于一种主流且高位彩色图像格式。使用过扫描仪或传真的小伙伴应该还记得,很多品牌及其默认文件就是.tiff后缀。因为TIFF最初的设计目的就是在1980年左右,扫描仪厂商达成一个公用的统一的扫描图像文件格式,而不是每个厂商使用自己专有的格式造成混乱。TIFF是一种比较灵活的图像格式,它的全称是Tagged Image File Format,文件扩展名为TIF或 TIFF。原创 2022-10-20 19:37:03 · 24258 阅读 · 3 评论 -
【数据增强】图像数据的几种增广方式
只做几种增广方式中的展示,有的增广方式 要注意!其他增广方式,自行百度。下面代码展示都是使用python的opencv库。原创 2022-10-20 18:05:20 · 1275 阅读 · 0 评论 -
【图像基础】RAW格式图像简介
数码相机直接输出的未经过处理过的图像,俗称raw图经过isp处理的图片,通常称为 jpg图了解摄影的人都会很熟悉raw图,一般都会在photoshop中对raw图进行调色、降噪、构图等处理,以获得更好的图像效果质量。为什么是RAW图呢?顾名思义,英文单词Raw是原始的,未处理的,其表征了纯粹的未处理的一堆数据,为何这里说是一堆数据而不是图像呢?实际上Raw图记录的就是CMOS或者CCD图像传感器将捕捉到光源(光子)信号转化为数字信号的原始数据。Raw格式的图片是数码相机采集到的最原始的图像数据信息。转载 2022-09-09 15:54:07 · 5879 阅读 · 1 评论 -
【图像基础】摄像头如何拍出照片的?
下面我们首先查看摄像头的整体结构::即镜头,镜头是将拍摄景物在传感器上成像的器件,它通常由几片透镜组成,相信如果了解工程光学的人对这个概念一定不陌生。从材质上看,摄像头的镜头可分为塑胶透镜和玻璃透镜。Voice Coil Motor(VCM)音圈马达:手机摄像头广泛使用VCM实现自动对焦功能,通过VCM可以调节镜头的位置,呈现清晰的图像。其里面实现原理主要是通过固定磁场加电流产生力进而引起马达运动然后对焦,通过步进方式在空间寻找对焦位置并通过对焦算法确定何时停止寻找对焦位置。转载 2022-09-09 14:51:40 · 1052 阅读 · 0 评论 -
【图像基础】bit depth图像色深介绍
一句话概括:不管是 8bit (2816) 还是 24bit (224) ,都是表示图像(灰度或彩色)中每一个像素的 像素值范围。就是用多少位表示一个像素值。8位二进制数(1 byte/字节),有符号最大的表示范围为-127到+128无符号最大表示范围为0到256,说明该图像 每个像素 最多有256个层次的灰度值。如果是2位灰度图则最多只有0,1,2,3四种层次的灰度,如果是1位灰度图,则只有0和1两种,即一幅图像非黑即白。转载 2022-09-09 14:17:46 · 1315 阅读 · 0 评论 -
【python工具】Conda常用命令整理
转载自:https://blog.csdn.net/zhognsc08/article/details/122735811仅作学习记录。转载 2022-08-03 13:45:57 · 765 阅读 · 0 评论 -
【python第三方库】pyinstaller使用教程及spec资源文件介绍
参考链接:https://www.pythonheidong.com/blog/article/753863/41f6ff97bef6a43a2c32/变量含义Analysis要求传入各种脚本用于分析程序的导入和依赖。内容主要包括以下四部分:scripts,即可以在命令行中输入的Python脚本;pure,程序代码文件中的纯Python模块,包括程序的代码文件本身;binaries,程序代码文件中需要的非Python模块,包括–add-binary参数指定的内容;......原创 2022-08-02 19:40:00 · 11018 阅读 · 2 评论 -
【深度学习】显卡驱动, cuda, cudnn的关系与版本对应问题
转载自:https://blog.csdn.net/weixin_39673002/article/details/113053729仅作学习记录。转载 2022-08-02 17:28:17 · 14871 阅读 · 3 评论 -
pytorch快速上手(10)-----netron查看神经网络结构图
netron并不支持pytorch通过torch.save方法导出的模型文件,因此在pytorch保存模型的时候,需要将其导出为onnx格式的模型文件,可以利用torch.onnx模块实现这一目标。第一步,pytorch导出onnx格式的模型文件。第二步,netron载入模型文件,进行可视化。接下来按照这两步进行实践。...原创 2022-07-15 15:17:03 · 3908 阅读 · 0 评论 -
pytorch快速上手(9)-----多GPU数据并行训练方法
单机多GPU可以使用torch.nn.DataParallel接口(DP,旧的)或者torch.nn.parallel.DistributedDataParallel接口(DDP,新的),官方推荐使用第二个,多机多卡的情况下只能使用DDP。进行分布式训练,distributed会在内部开辟多个进程,进程数与可用的GPU数一致,多个进程分别加载数据集的一部分,在每个GPU上实现加载部分数据集的前向与反向传播,多个GPU上的反向传播得到的梯度会通过gpu间的。最后还有一步,启用多进程运行。...原创 2022-07-15 14:59:49 · 3302 阅读 · 0 评论 -
【嵌入式芯片】GPU,CPU,SOC,DSP,FPGA,ASIC,MCU,MPU,GPP,ECU等简介
嵌入式芯片介绍转载 2022-07-14 14:28:21 · 3556 阅读 · 0 评论 -
【嵌入式】仿真代码与仿真器的疑问
仿真的个人理解原创 2022-07-08 11:39:21 · 918 阅读 · 0 评论 -
【推理加速】神经网络量化简介
深度学习模型量化转载 2022-06-27 16:06:03 · 845 阅读 · 0 评论 -
【推理加速】深度学习模型压缩与加速综述
深度学习模型压缩与加速综述转载 2022-06-27 15:16:14 · 708 阅读 · 0 评论 -
【李沐深度学习】34.参数管理 代码示例
内容记录于李沐大神的深度学习课程。第34课 参数管理原创 2022-06-24 13:22:50 · 158 阅读 · 0 评论 -
制作docker镜像方法记录
创建镜像创建镜像有很多方法, 用户可以从 Docker Hub 获取已有镜像并更新, 也可以利用本地文件系统创建一个。法1.修改已有镜像总体流程:基于已有的基础镜像,启动容器,在容器中安装开发必须的各种包,装完后退出容器;可以docker commit提交到镜像仓库中;也可以docker export导出成本地文件,移动到其他服务器docker import继续使用。详细步骤1. 使用已有的镜像启动一个容器sudo docker run -t -i -u root --gpus原创 2021-01-28 16:49:29 · 90 阅读 · 0 评论 -
【Linux技巧】Linux挂载Windows的文件夹
为什么要挂载当windows下的文件或代码需要在Linux上编译使用等等,使用Xshell终端或WinSCP向Linux传文件可能会受到速度瓶颈的限制,根本不能达到即需即用。这个时候就到了共享文件夹上场的时候了,只需把文件目录挂载到linux某目录下(windows和Linux共享一份文件),就可以直接使用,省略了传输步骤,节省了大量的时间,做到了即用即挂。如何挂载关闭windows防火墙 在windows上将要共享的文件夹设置成 共享Linux服务器上进行操作首先创建挂载目录 /d原创 2021-06-11 14:35:42 · 390 阅读 · 1 评论 -
【python第三方库】visdom使用简易教程
概述Visdom:一个灵活的可视化工具,可用来对于 实时,富数据的 创建,组织和共享。支持Torch和Numpy还有pytorch。visdom可以实现远程数据的可视化,对科学实验有很大帮助。我们可以远程的发送图片和数据,并进行在ui界面显示出来,检查实验结果,或者debug.要用这个先要安装,对于python模块而言,安装都是蛮简单的:pip install visdom安装完每次要用直接输入代码打开:python -m visdom.server然后根据提示在浏览器中输入相应地址原创 2021-05-18 20:00:58 · 3828 阅读 · 4 评论 -
【pytorch基础】模型的自定义参数初始化方式
总结单层网络初始化直接调用torch.nn.innit里的初始化函数多层网络初始化2.1 使用apply和weight_init函数2.2 在__init__函数使用self.modules()初始化详细阐述1. 单层网络在创建model后直接调用torch.nn.innit里的初始化函数layer1 = torch.nn.Linear(10,20)torch.nn.init.xavier_uniform_(layer1.weight)torch.nn.init.constan原创 2021-05-14 16:23:46 · 2235 阅读 · 0 评论 -
【pytorch基础】Tensor及其基本操作
本文转载自:https://zhuanlan.zhihu.com/p/36233589仅作记录学习~总结本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用。详细阐述Tensor attributes:在tensor attributes中有三个类,分别为torch.dtype, torch.device, 和 torch.layout其中, torch.dtype 是展示 torch.Tens转载 2021-05-14 14:37:41 · 855 阅读 · 0 评论 -
【基础知识】深度学习中各种归一化方式详解
本文转载自 https://blog.csdn.net/qq_23981335/article/details/106572171仅作记录学习~总结BN,LN,IN,GN,WS 从学术上解释差异:BatchNorm:batch方向做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布;LayerNorm:channel方向做归转载 2021-05-14 11:17:30 · 1134 阅读 · 0 评论 -
【trick技巧】label smoothing标签平滑的一些个人思考
问题背景对于分类问题,尤其是多类别分类问题中,常常把类别向量做成one-hot vector(独热向量)。简单地说,就是对于多分类向量,计算机中往往用[0, 1, 3]等此类离散的、随机的而非有序(连续)的向量表示,而one-hot vector 对应的向量便可表示为[0, 1, 0],即对于长度为n 的数组,只有一个元素是1,其余都为0。因此表征我们已知样本属于某一类别的概率是为1的确定事件,属于其他类别的概率则均为0。此处就可引出一对概念:硬编码的类别标签向量是二值的,如,一个类别标签是原创 2021-04-21 17:41:57 · 1133 阅读 · 0 评论 -
【分割网络】DBNet详解
原创 2021-04-15 19:41:58 · 946 阅读 · 0 评论 -
【基础知识】多标签分类CrossEntropyLoss 与 二分类BCELoss
什么是多标签分类图片中是否包含房子?你的回答就是有或者没有,这就是一个典型的二分类问题(一个问题两个选项,是或不是)。同样还是这幅照片,问题变成了:这幅照片是谁拍摄的?备选答案你,你的父亲,你的母亲,这就变成了一个多分类问题(一个问题多个选项)。若此时问题如下:你会发现图中所示的答案有多个yes,而不同于之前的多分类只有一个yes。这就是多标签分类。多标签的问题的损失函数是什么这里需要先了解一下softmax 与 sigmoid函数这两个函数最重要的区别,我们观察一下:区别还转载 2021-04-07 17:08:42 · 5331 阅读 · 0 评论 -
【FPN】常见的几种特征金字塔介绍
目的为什么使用特征金字塔呢,是因为CNN对物体的平移是保持不变的,而对于物体的尺度变换是无法处理的;而且高层的语义信息较丰富,但经过多层特征提取和压缩,缺少对于小尺度的细节信息,所以使用特征金字塔进行处理,下面进行介绍。特征金字塔结构的演变Featurized image pyramid对图像做一个特征金字塔,在每一个图像上做CNN,进行预测,但 计算与内存开销太大。Single feature map对图像做一个CNN,相当于一个特征金字塔,不对图像做特征金字塔,在最高层做一个预测,但这存原创 2021-03-31 17:47:15 · 1938 阅读 · 0 评论 -
【caffe】use_global_states设置问题
Batch Normalization层中有个参数use_global_stats,它表示是否使用caffe内部的均值和方差。训练的时候,要将use_global_stats设置为false,也可以不写,caffe默认是false。测试的时候将use_global_stats设置为true。区别use_global_stats: false 是使用了每个Batch里的数据的均值和方差;use_global_stats: true 是使用了所有数据的均值和方差;影响训练如原创 2021-03-26 13:48:18 · 255 阅读 · 0 评论 -
【caffe】Check failed: error == cudaSuccess (74 vs. 0) misaligned address的解决方法
问题最近在finetune一个剪枝后的caffe model时,遇到了下面这个问题解决方法经百度,发现了解决方案。即:在cudnn_conv_layer.cpp 中 “ size_t total_max_workspace = … ” 前加入:size_t m=32;max_workspace = (max_workspace + m-1) / m * m; //align address to be multiples of memory如下图更改完caffe,勿忘重原创 2021-03-26 09:31:42 · 530 阅读 · 0 评论 -
【ONNX】---Shape Inference
ONNX提供了ONNX图上shape推理的可选实现,该实现包含每一个核心操作符,且为扩展提供了接口。因此,既可以使用已有shape推理函数到你的图中,也可以自定义shape推理实现来与你的操作符保持一致,或者同时使用以上两种方法;shape推理函数是OpSchema中的一个成员。引用shape推理可通过c++或者python引用shape推理,其中python API为:可运行的python脚本为:链接C++ API为一个函数:其中,参数ModelProto是进行shape推理的文件,该文件使原创 2021-03-16 19:44:55 · 2491 阅读 · 0 评论