
深度学习
文章平均质量分 57
深度学习一些笔记
zephyrji96
Master at Shenzhen University.
Research interest: transfer learning, domain adaptation, autonomous vehicle and CV.
2021.3-2021.9 Intern at SenseTime
2020.07-2021.2 Intern at TCL Industrial Technology Research Institute
展开
-
FLOPs和模型参数计算
# from ptflops import get_model_complexity_info # flops, params = get_model_complexity_info(model, (3,640,640), as_strings=True, print_per_layer_stat=True) # print('FLOPs: ', flops) # print('Params: ', params) # aa # from thop import pr原创 2022-03-09 19:21:20 · 629 阅读 · 0 评论 -
Gram matrix(格拉姆矩阵)
文章目录一、基础知识-向量的内积二、Gram matrix介绍三、Gram matrix的应用-风格迁移一、基础知识-向量的内积1.1 向量的内积定义:也叫向量的点乘,对两个向量执行内积运算,就是对这两个向量对应位一一相乘之后求和的操作,内积的结果是一个标量。1.2 实例:a和b的内积公式为:1.3 作用:内积判断向量a和向量b之间的夹角和方向关系a·b>0 方向基本相同,夹角在0°到90°之间a·b=0 正交,相互垂直a·b<0 方向基本相反,夹角在9原创 2021-12-10 16:14:19 · 846 阅读 · 0 评论 -
学习杂记【待整理】
ReflectionPad2d、InstanceNorm2d详解及实现nn.ReLU(inplace=True)中inplace的作用参数: inplace-选择是否进行覆盖运算hook函数:链接lr_scheduler和optimizer:链接transforms.Compose()类详解:串联多个transform操作链接...原创 2021-12-08 10:49:19 · 801 阅读 · 0 评论 -
Ubuntu18 yolov5使用ncnn部署
文章目录准备工作编译ncnn.pt文件转.onnx文件onnx2ncnn(有坑)ncnnoptimize优化C++代码处理测试准备工作yolov5 v5.0:git clone https://github.com/ultralytics/yolov5.gitgit checkout v5.0ncnn源码git clone https://github.com/Tencent/ncnn.gitcd ncnngit submodule update --init安装依赖su原创 2021-05-30 22:28:11 · 1840 阅读 · 6 评论 -
【超参搜索】模型自动超参数优化方法:网格搜索、随机搜索、遗传算法
文章目录一、超参二、网格搜索 GridSearchCV三、随机搜索 RandomizedSearchCV四、自动超参搜索:遗传算法(GA)一、超参学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter)。还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper parameter)。超参数是在开始学习过程之前设置值的参数。相反,其他参数的值通过训练得出。参数空间的搜索一般由以下几个部分构成:一个estimator(回归器 or 分原创 2021-05-12 18:43:21 · 17580 阅读 · 3 评论 -
利用随机数种子来使pytorch中的结果可以复现
在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果,当得到比较好的结果时我们通常希望这个结果是可以复现的,在pytorch中,通过设置随机数种子也可以达到这么目的。直接上code: import torch SEED = 0 torch.manual_seed(SEED) torch.cuda.manual_seed_all(SEED) torch.backends.cudnn.deterministic = True原创 2021-04-28 08:59:01 · 286 阅读 · 0 评论 -
PixelShuffler原理
PixelShuffler是一种端到端可学习的上采样模块,通过设置上采样比例,就可由低分辨率图像获取指定倍率的高分辨率图像。上采样可以理解为在同一个位置,原来只是以1:1的比例提取信息,而现在以1:4的比例提取信息,提取信息的频率更高了,所以能反映的细节也就更多。对于tensor来说,在同一个位置多提取信息,也就是通过卷积生成通道数更多的tensor。具体过程为(以一个(n,64,64,64)的特征图为例)通过卷积,得到通道数倍增的特征图(n,64,64,256)将特征图切割成若干份,对每一份(n,6原创 2021-04-25 10:11:53 · 2467 阅读 · 0 评论 -
BN、LN、IN、GN和SN
一、相关paperBatch Normalization,其论文:https://arxiv.org/pdf/1502.03167.pdfLayer Normalizaiton,其论文:https://arxiv.org/pdf/1607.06450v1.pdfInstance Normalization,其论文:https://arxiv.org/pdf/1607.08022.pdfGroup Normalization,其论文:https://arxiv.org/pdf/1803原创 2021-04-22 11:08:34 · 874 阅读 · 0 评论 -
Pytorch中变量在tensor与numpy之间转换,tensor在CPU和GPU之间转换
1.CPU tensor转GPU tensor:cpu_imgs.cuda()2. GPU tensor 转CPU tensor:gpu_imgs.cpu()3. numpy转为CPU tensor:torch.from_numpy( imgs )4.CPU tensor转为numpy数据:cpu_imgs.numpy()5.GPU tensor转为numpy数据:gpu_imgs.cpu().numpy()原创 2020-11-06 10:44:39 · 1467 阅读 · 0 评论 -
【Trick】调优方法warmup
学习率是模型训练中最重要的超参之一,针对学习率的优化有很多种方法,而warmup是其中重要的一种。先提供github库链接:https://github.com/ildoonet/pytorch-gradual-warmup-lr什么是warmupwarmup是一种学习率优化方法(最早出现在ResNet论文中)。在模型训练之初选用较小的学习率,训练一段时间之后(如:10epoches或10000steps)使用预设的学习率进行训练;为什么使用warmup1、因为模型的weights是随机初始化的,原创 2020-07-29 21:08:30 · 1874 阅读 · 1 评论 -
【标注图像】windows下使用labelImg
文章目录labelImg工具下载labelImg工具使用方法开始图像数据标注labelImg工具下载下载地址:链接:https://pan.baidu.com/s/138k49VHBLbzpjXFBKtMyYQ 提取码:mzxh下载的文件是编译好的,可执行的labelImg.exe文件。直接将文件放在windows环境下,双击可执行。labelImg工具使用方法1.双击labelImg执行文件图标,会出现操作界面:出现这样的窗口界面,说明labelImg已经正常开启,背景黑色的窗口是终端原创 2020-07-29 20:50:43 · 717 阅读 · 0 评论 -
【图像增强】python图像数据增强
导入数据增强包:from imgaug import augmenters as iaa #引入数据增强的包sometimes = lambda aug: iaa.Sometimes(0.5, aug) #建立lambda表达式,这里定义sometimes意味有时候做的操作,然而实际上在深度学习的模型训练中,数据增强不能喧宾夺主,如果对每一张图片都加入高斯模糊的话实际上是毁坏了原来数据的特征,因此,我们需要“有时候”做,给这个操作加一个概率。下面建立一个图像增强流程,有详细注释:seq = i原创 2020-07-28 21:35:54 · 3227 阅读 · 1 评论 -
【Pycharm】连接远程服务器并进行代码上传、调试
文章目录一、连接远程服务器二、配置远程服务器前提:需要有一个远程服务器,知道他的ip、port、user、password同时Pycharm需要是专业版,社区版没有此服务。另,专业版学生邮箱注册免费。一、连接远程服务器1、进入配置页面:Pycharm菜单栏,如下图所示,依次点击 Tools -> Deployment -> Configration…2、配置连接服务器:Connection下,协议最好选择SFTP,接下来填写服务器主机IP,用户名,密码。配置完成后点击Test S原创 2020-07-27 21:24:14 · 866 阅读 · 0 评论 -
Pytorch各种损失函数
1、L1Loss创建一个标准来测量标准中每个元素之间的平均绝对误差(MAE)输入:math:`x`和目标:math:`y`where :math:`N` is the batch size. If :attr:`reduction` is not ``'none'``(default ``'mean'``)import torch.nn as nnloss = nn.L...原创 2020-01-05 10:11:15 · 1762 阅读 · 0 评论 -
选择合适的回归损失函数
机器学习中的所有算法都依赖于最小化(最大化可转化为最小化)某一个函数,我们称之为“目标函数”。最小化的这组函数被称为“损失函数”。损失函数是衡量预测模型预测期望结果表现的指标。寻找函数最小值的最常用方法是“梯度下降”。把损失函数想象成起伏的山脉,梯度下降就像从山顶滑下,目的是到达山脉的最低点。没有一个损失函数可以适用于所有类型的数据。损失函数的选择取决于许多因素,包括是否有离群点,机器学习算法...原创 2020-01-05 09:36:16 · 767 阅读 · 0 评论 -
交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)
目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量:任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。如昨天下雨这个已知事件,因为已经发生,既定事实,那么它的信息量...原创 2020-01-01 17:11:43 · 3585 阅读 · 1 评论 -
多标签图像分类任务的评价方法——mAP
在单标签图像分类任务中,一般使用top1 accuracy 或者 top5 accuracy 衡量分类的准确性。而多标签图像分类任务的评价方法一般采用的是和信息检索中类似的方法——mAP(mean average precision)。以下是mAP的计算方法:在介绍mAP的计算方法之前,先介绍两个更基本的概念:precision and recall如上图1所示,圆圈内的样本为选出的模...原创 2020-01-01 14:04:43 · 1193 阅读 · 0 评论