深度学习
文章平均质量分 68
永力
这个作者很懒,什么都没留下…
展开
-
深度学习优化算法
list的extend()梯度下降法随机梯度下降法(SGD)小批量梯度下降法动量法AdagradAdagrad是解决不同参数应该使用不同的更新速率的问题。Adagrad自适应地为各个参数分配不同学习率的算法。SGD、SGD-M 和 NAG 均是以相同的学习率去更新 [公式] 的各个分量。而深度学习模型中往往涉及大量的参数,不同参数的更新频率往往有所区别。对于更新不频繁的参数(典型例子:...原创 2019-09-11 21:20:55 · 416 阅读 · 1 评论 -
【yolov5】loss.py源码理解
yolov5的loss.py中的build_targets函数中由两处扩充正样本的地方:因为anchor有3个,所以将targets扩充成3份,每一份共享一个anchor;假设一共有20个targets目标框,则将目标数扩充至[3, 20],共60个目标;第一份的20个目标与第一个anchor匹配,第二份的20个目标与第二个anchor匹配,第三份的20个目标与第三个anchor匹配,那么会有一部分目标没有匹配上(目标框与anchor的宽比或高比超出阈值),则最后可能会只有30个目标匹配成功,剩余的ta原创 2022-04-23 23:41:32 · 2167 阅读 · 0 评论 -
opencv->tensorrt的数据排列方式
在使用tensorrt的时候,将opencv的Mat格式处理成tensorrt输入方式。中间还有图像预处理,包括通道的变换、图像尺寸变形,最重要的是如何将Mat格式处理成tensorrt 可接受的输入格式。Mat的图像数据,每个像素的三个通道是相邻存储的,因此要将Mat通道分离;使用split函数分离通道std::vector<float> prepareImage(std::vector<cv::Mat> &vec_img) { std::vector&l原创 2021-11-17 15:08:01 · 2963 阅读 · 1 评论 -
pytorch中的normalize应用
torch.nn.functional.normalize(input, p=2, dim=1, eps=1e-12, out=None)其中,p表示范数(这里是2范数),dim表示计算范数的维度(默认为1),eps是为了防止分母为0;pytorch中的normalize函数本质上就是针对某个维度进行归一化,公式为:ν=νmax(∣∣ν∣∣p,ϵ)\nu = \frac{\nu}{max(||\nu||_p,\epsilon)}ν=max(∣∣ν∣∣p,ϵ)ν示例a = F.softmax(原创 2021-11-14 15:46:55 · 5489 阅读 · 0 评论 -
【opencv】pytorch->onnx->opencv模型推理
opencv的DNN推理模块是不直接支持pytorch训练出来的pth文件。一般来说,可以将pth文件转成onnx格式,再用opencv调用onnx文件,即可实现推理。pth文件转onnx文件时,因为onnx对于pth中某些定义的层是不支持的,难免会碰到一些问题。近期,对一些分割网络进行了部署,碰到的一些问题记录在下。RuntimeError: ONNX export failed: Couldn’t export operator aten::adaptive_avg_pool2donnx不支持原创 2021-08-28 17:40:43 · 3832 阅读 · 0 评论 -
HRNet-segmentation的网络结构分析
High-Resoultion Net(HRNet)由微软亚洲研究院和中科大提出,发表在CVPR2019。HRNet的网络在CV领域,越来越得到关注,因为很多用HRNet作为骨架网络的方案在语义分割、目标检测、分类、分割、人体姿态估计等领域均取得瞩目的成绩。文章名称:Deep High-Resolution Representation Learning for Human Pose Estimation本文主要内容是展示HRNet在分割领域的模型结构,下面的例子选用HRNet_w48模型。Githu原创 2021-08-18 20:02:20 · 1400 阅读 · 0 评论 -
AGX编译安装opencv和opencv-contrib模块(c++和python,支持GPU)
在AGX编译安装opencv-python及opencv-contrib-python有两个途径一、pip安装(以4.4.0.46版本为例)sudo pip3 install opencv-python==4.4.0.46sudo pip3 install opencv-contrib-python==4.4.0.46pip安装只适合python接口调用,若用c++接口,则需要源码编译安装。二、源码编译安装源码编译安装在终端输入cmake预编译指令,编译出来即可满足c++,python接口调用原创 2021-04-13 17:21:06 · 1085 阅读 · 1 评论 -
caffe源码学习——batch_norm_layer
BatchNorm是深度学习网络中必不可少的层,可以起到加速收敛的作用。由于每一个Batch的数据都具有不同的分布,为了加速模型的学习能力,对数据进行归一化。此外,由于又不能完全归一化,需要根据当前数据分布对数据进行缩放和偏移。因此,BatchNorm主要有两个步骤:求解数据的均值和方差,并归一化;对归一化的数据缩放和偏移。在caffe源码中,对BatchNorm也是分开描述的,步骤一体现在batch_norm_layer.cpp(.cu)中,步骤二体现在scale_layer.cpp(.cu)。原创 2021-03-18 16:10:07 · 336 阅读 · 1 评论 -
Jetson Nano上编译使用darknet
Jetson Nano是Nvidia在TX2和Xavier获得成功后推出的低配版GPU运算平台。测一下darknet版本yolov4在nano上的性能。下载git clone https://github.com/AlexeyAB/darknet.git编译修改Makefilecd darknetvim Makefile令GPU=1, CUDNN=1, OPENCV=152行附近,取消注释77行附近,修改NVCC的值开始编译make -j4下载权重文件 wget原创 2021-01-18 19:38:32 · 953 阅读 · 2 评论 -
Jetson Nano刷机及pycuda安装
这两天对入手的NVIDIA Jetson Nano开箱刷机。中间遇到一些问题,简单记录一下,方便以后回看。Jetson Nano是Nvidia在TX2和Xavier获得成功后推出的低配版GPU运算平台。拥有4GB的内存,因为其中有一部分(1GB左右)是和显存共享的。Jetson Nano本身没有存储空间,支持MicroSD卡,也称tf卡。系统镜像和其他软件包、深度学习模型都会放在tf卡上,因此容量必须要足够,官方建议tf卡容量为64G。(1) 无法开机可能是系统镜像的问题,建议去官网下载;Jets原创 2021-01-15 15:38:21 · 670 阅读 · 2 评论 -
Nvidia AGX Xavier刷机指北
因为工作的关系,要在AGX上安装CUDA。nvidia官网上没找到适合AGX版本的CUDA,只能走刷机的路子。刷机过程中,也遇到一些坑,做个记录。需要有一台ubuntu系统的电脑作为主机Host。我的主机系统为Ubuntu18.04整个刷机过程为:在Host上安装sdkmanager,整个刷机过程主要通过sdkmanager来操作。在Host自动下载一些系统组件,各种deb包Host上制作OS系统镜像,烧录到AGX中Host上之前下载好的deb包,安装到AGX中。完结,撒花...原创 2020-11-21 19:54:05 · 5109 阅读 · 2 评论 -
label-smoothing标签平滑__pytorch版实现
标签平滑(label-smoothing)主要用于防止过拟合,增强模型的泛化能力。在one-hot的基础上,添加一个平滑系数ε\varepsilonε,使得最大预测与其它类别平均值之间差距的经验分布更加平滑。Pytorch代码实现import torchdef smooth_one_hot(true_labels: torch.Tensor, classes: int, smoothing=0.0): """ if smoothing == 0, it's one-hot meth原创 2020-09-03 15:17:28 · 5622 阅读 · 2 评论