自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 组卷积和深度可分离卷积

图b表示深度卷积,图c表示分点卷积,两者合起来就是深度可分离卷积,深度卷积负责滤波,尺寸为Dk×Dk×1,共M个,作用在输入的每个通道上;第一张图是标准的卷积操作,若输入的特征图是H×W×c1,卷积核的尺寸为h1×w1×c1,输出特征图的尺寸为H×W×c2,那么标准卷积层的参数量为h1×w1×c1×c2。图a表示标准卷积,假设输入的特征图尺寸为Df×Df×M,卷积核尺寸为Dk×Dk×M,输出特征图的尺寸为Df×Df×N,标准卷积层的参数量为Dk×Dk×M×N。

2022-09-30 16:35:43 432 1

原创 argparse用法总结

argparse是python自带的命令行参数解析包,可以用来方便的读取命令行参数,当代码需要频繁的修改参数时,使用这个工具可以将参数和代码分开,让代码更简洁,适用范围更广。

2022-08-10 15:34:42 715

原创 __all__变量用法

__all__变量的用法

2022-07-08 13:44:56 1010

原创 xml.etree.ElementTree解析xml文件

xml.etree.ElementTree解析xml文件

2022-07-06 18:37:31 1068

原创 labelimg的安装与使用

labelimg的安装

2022-07-05 19:07:43 492 2

原创 Pycharm连接远程服务器

pycharm链接远程服务器

2022-06-30 11:31:55 1936

原创 pandas 用法总结

pandas 是基于numpy构建的,让以numpy为中心的应用变得更加简单。一、pandas的两种数据结构1、SeriesSeries是一种类似于一维数组的对象,它是由一组数据(各种Numpy数据类型)以及与之相关的数据标签(即索引组成)。仅由一组数据即可产生最简单的Series。Series的字符串表现形式为:索引在左边,值在右边。由于没有设定索引,会自动创建由0到N-1的整数型索引。可以通过Series的values和index属性来获取数组的表示形式和索引对象。对Series的各个数据点设

2022-06-04 22:10:56 2114

原创 numpy 用法总结

简介numpy 是Numerical Python的简称,是高性能的科学计算和数据分析的基础包,包含了大量的矩阵和数组的计算函数。下面来详细了解一下numpy的用法。# 安装 numpypip install numpy# 查看numpy的版本numpy.__version__# 导入numpyimport numpy as np一、创建ndarrayndarray:numpy中最基础的数据结构,一种多维的数组对象。创建数组最简单的方法是使用array函数,它接受一切序列的对象,然后产

2022-05-31 20:44:31 4085

原创 matplotlib 画图总结

写在前面:好久没用到matplotlib,最近用到的时候发现有些点已经忘了还得查资料,所以趁此机会把matplotlib中常用到的画图方法总结一下!matplotlib 官网matplotlib是python中非常实用的一个模块,可以使用matplotlib绘制各种各样的图形,比如折线图、散点图、直方图、条形图、饼图、雷达图等。在python中安装和导入matplotlib包如下:# 安装pip install matplotlib# 导入import matplotlib.pyplot as

2022-05-25 23:51:45 10082

原创 Pytorch学习笔记十七:模型的保存与加载

一、模型的保存与加载当我们的模型训练好之后是需要保存下来,以备后续的使用,那么如何保存和加载模型呢?下面就从三个方面来理解一下。1、序列化与反序列化序列化是指内存中的某一对象保存到硬盘中,以二进制的形式存储下来,这就是一个序列化的过程;反序列化就是将硬盘中的存储的二进制数反序列化到内存中,得到一个相应的对象,这样就可以再次使用这个模型了。如下图所示:序列化和反序列化的目的就是将模型保存并再次使用。pytorch中序列化和反序列化的方法:torch.save(obj, f):obj表示对象,也就

2022-05-06 11:46:00 2837

原创 YOLO9000: Better, Faster, Stronger论文解读

论文:链接代码:链接

2022-05-03 14:31:50 257

原创 Pytorch学习笔记十六:正则化

一、weight decay(权值衰减)正则化(regularization):减小方差的策略。那什么是方差呢?误差 = 偏差 + 方差 + 噪声偏差:度量了学习算法的期望预测与真实结果之间的偏离程度,即刻画了学习算法的拟合能力;方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声:表达了当前任务上任何学习算法所能达到的期望泛化误差的下届。可从下图来理解:...

2022-05-03 14:00:17 6923

原创 二分查找算法

Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky...这句话的理解是:思路很简单,细节是魔鬼下面从一些细节来分析二分查找的几个常用场景:寻找一个数,寻找左侧边界、寻找右侧边界一、二分查找的框架def BinarySearch(nums, target): left = 0 right = ... w

2022-04-29 16:49:34 112

原创 pytorch学习笔记十五:Hook函数与CAM可视化

一、hook函数

2022-04-10 21:43:34 2905

原创 pytorch学习笔记十四:TensorBoard

一、TensorBoard的简介与安装TensorBoard是Tensorflow中强大的可视化工具,支持标量、图像、文本、音频和 Embedding 等多种数据可视化。可以在模型的训练过程中绘制loss曲线,监控模型的训练效果,也可以对模型的参数分布,数据分布,图像、音频等各种数据的可视化。下面是TensorBoard的一个界面:TensorBoard是如何显示这个界面的呢?下面来看一下TensorBoard的运行机制从上图中可看出先从python脚本中记录需要可视化的数据,然后生成eventf

2022-04-07 22:54:33 1240

原创 pytorch学习笔记十三:学习率的调整策略

pytroch中常见的学习率调整策略

2022-03-28 23:38:01 2495

原创 pytorch学习笔记十二:优化器

前言机器学习中的五个步骤:数据 ——> 模型 ——> 损失函数 ——> 优化器 ——> 迭代训练,通过前向传播,得到模型的输出和真实标签之间的差异,也就是损失函数,有了损失函数之后,模型反向传播得到参数的梯度,接下来就是优化器根据这个梯度去更新参数,使得模型的损失不断降低,那么优化器是如何做到的呢?分别从三个方面了解一下,优化器的概念,优化器的属性和方法,常用的优化器。一、什么是优化器pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签。在更新参

2022-03-22 22:50:26 4632 1

原创 Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift论文解读

论文:链接前言机器学习中有个很重要的假设:IID 独立同分布假设,就是假设训练数据和测试数据是满足相同的分布,这是通过训练数据获得的模型在测试数据上表现效果好的一个基本保障,也就是说模型的泛化能力。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经网络的训练过程中使得每一层神经网络的输入保持相同的分布。其实BatchNorm的提出也是为了解决深度神经网络训练困难的问题,像Relu、residual network也是为了解决这一问题的。Q:为什么深度神经网络随着网络深度的加深,训练

2022-03-16 21:41:03 1068

原创 yolov1代码解读

前面已经对yolov1的原理做了一个了解,下面就来看一下yolov1的代码实现过程yolov1的代码倒是比Faster-Rcnn简单多了,但是一些逻辑顺序和Faster-Rcnn差不多● pascal_voc.py:对图片数据和XML数据进行解析和预处理;● yolo_net.py:搭建yolo v1网络,设置yolo v1的损失函数;● train.py 和test.py :一个用来训练模型,一个用来测试模型。1、pascal_voc.py这部分主要是解析xml文件,读取图片数据和对数据进行预

2022-03-15 14:08:56 7921 2

原创 You Only Look Once: Unified, Real-Time Object Detection论文解读

论文:链接代码:TensorFlow版本核心思想:将整张图片作为网络的输入,直接在输出层对BBox的位置和类别进行回归。回顾:两阶段目标检测的实现过程:1、采用滑动窗口,对每个窗口进行分类和位置修正;2、用RPN网络提取候选区域,特征图对应的候选区域经过roipooling得到所需特征;3、SSD继承RPN类似的anchor机制,设定预设框并对每个预设框赋予groundtruth,全卷积网络训练目标。1、网络结构yolo的网络结构包含24个卷积层+2个全连接层组成。简单地说,就是将一张输入的图片

2022-03-15 14:07:08 522

转载 梯度下降(Gradient Descent)小结

文章转载于:https://www.cnblogs.com/pinard/p/5970503.html主页:https://www.cnblogs.com/pinard/在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。1、梯度在微积分里,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得

2022-03-03 23:57:58 258

原创 pytorch学习笔记十一:损失函数

一、损失函数是什么损失函数:衡量模型输出与真实标签之间的差异。与损失函数有关的还有代价函数和目标函数。损失函数(Loss Function):计算一个样本的差异,Loss=f(y^,y)Loss=f\left ( \hat{y},y \right )Loss=f(y^​,y)代价函数(Cost Function):计算整个训练集loss的一个平均值,cost=1N∑iNf(y^,y)cos t= \frac{1}{N}\sum_{i}^{N}f\left ( \hat{y},y \right )co

2022-02-28 23:20:58 1647 1

原创 softmax+交叉熵

1、softmax函数softmax函数的定义为:softmax函数的特点:● 函数值在[0,1]之间;● 所有的softmax(xi)相加的总和是1面对一个分类问题,能将输出的yi转换成[0,1]的概率,选择最大的概率yi作为分类的结果。sigmoid函数定义为:sigmoid函数将每个yi映射到[0,1]之间,但每个yi之间是相互独立的,∑yi与1没有关系,可以用作二分类;而softmax函数的本质是将一个k维数据[a1,a2,a3,…,ak]映射成另外一个K维向量[b1,b2,b3

2022-02-23 23:31:17 2580

原创 pytorch学习笔记十:权值初始化的十种方法

在上一节中了解了为什么要进行权值初始化以及如何选择权值初始化方法,在这一节来了解一下pytroch中十种权值初始化方法一、权值初始化流程1、先设定什么层用什么初始化方法,初始化方法在 torch.nn.init 中给出;2、实例化一个模型之后,执行该函数,即可完成初始化。示例:def initialize_weights(self): for m in self.modules: # 对卷积层进行初始化 if isinstance(m, nn.Conv2d)

2022-02-23 09:47:49 1612

原创 pytorch学习笔记九:权值初始化

一、概念权值初始化是指在网络模型训练之前,对各节点的权值和偏置初始化的过程,正确的初始化会加快模型的收敛,从而加快模型的训练速度,而不恰当的初始化可能会导致梯度消失或梯度爆炸,最终导致模型无法训练。如上图所示的一个基本的CNN网络结构,数据在网络结构中流动时,会有如下的公式(默认没有偏置):在反向传播的过程中,由于是复合函数的求导,根据链式求导法则,会有两组导数,一个是损失函数Cost对Z的导数,一个是损失函数对W的导数,1、损失函数关于状态Z的梯度:2、损失函数关于W的梯度:可以看出,

2022-02-21 23:59:11 2197 1

原创 pytorch学习笔记八:nn网络层——激活函数层

结合pytorch中的激活函数,来总结一下深度学习中的激活函数一、激活函数的概念和作用概念:在神经网络中每个神经元节点接受上一层神经元的输出作为本神经元的输入,并将输出值传入到下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐藏层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。对激活函数的理解:不使用激活函数的话,神经网络的每层都只是做线性变换,多层叠加后还是线性变换。因为线性模型的表达能力通常不够,所以引入激活函数,加入

2022-02-17 21:19:55 3073

原创 pytorch学习笔记七:nn网络层——池化层、线性层

一、池化层池化运算:对信号进行“收集” 并“总结”,类似于水池收集水资源,因而得名池化层。收集:由多变少,图像的尺寸由大变小总结:最大值/平均值下面是最大值池化和平均值池化的示意图:最大值池化就是将滑动窗口中的最大值作为最终的结果;平均值池化是将滑动窗口的平均值作为最终结果。下面看一下pytorch中提供最大值和平均值池化的函数1、nn.Maxpool2dnn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, retur

2022-02-16 23:39:56 4475

原创 pytroch学习笔记六:nn网络层——卷积层

通过前面两节的学习,已经知道如何搭建一个网络模型以及搭建模型一个非常重要的类nn.Module和模型容器Containers。搭建网络模型有两个基本的步骤:建立子模块和拼接子模块。建立的子模块就包括卷积层、池化层、激活层和全连接层等。所以这一节就从子模块开始。一、卷积运算与卷积层卷积运算:卷积核在输入信号(图像)上滑动,相应位置进行乘加;卷积层:又称为滤波器,过滤器,可以认为是某种模式,某种特征。卷积的过程类似于用一个模版去图像上寻找与它相似的区域,与卷积模式越相似,激活值越高,从而实现特征的提取。

2022-02-16 00:03:26 3622

原创 pytorch学习笔记五:模型的创建

在上一节中整理了数据模块的知识点,在本节中主要围绕如何用pytorch构建一个模型来展开,最后用pytorch实现Alexnet网络结构的搭建。下面基于上面的框架来探索每一个模块的实现细节。一、模型的创建上面是LetNet的网络图,由边和节点组成,节点表示输入的数据大小,而边就是数据之间的运算。从上面的LetNet的网络中可以看出,网络接受一个输入,然后经过运算得到一个输出,在网络结构的内部,又分为多个子网络层进行拼接组成,这些子网络层之间的拼接 配合,最终得到我们想要的输出。所以通过上面的分析

2022-02-14 15:07:13 1167

原创 pytorch学习笔记四:数据的预处理模块

transforms是pytorch中常用的图像预处理方法,这个在torchvision计算机视觉工具包中。在安装pytorch时顺便安装了torchvision,在torchvision中,有三个主要的模块:● torchvision.transforms:常用的图像预处理方法,比如:标准化、中心化、旋转、翻转等;● torchvision.datasets:常用的数据集的dataset实现,例如:MNIST、CIFAR-10、ImageNet等;● torchvision.models:常用的预训

2022-02-08 23:22:47 2317

原创 pytroch学习笔记三:数据的读取机制

机器学习的五大模块:数据模块又可分为以下几部分:● 数据的收集:Image、label● 数据的划分:train、test、valid● 数据的读取:DataLoader,有两个子模块,Sampler和Dataset,Sampler是对数据集生成索引index,DataSet是根据索引读取数据● 数据预处理:torchvision.transforms模块所以这一节主要介绍pytorch中数据的读取模块一、DataLoadertorch.utils.data.DataLoader():构建

2022-01-29 11:34:38 3811

原创 pytorch学习笔记二:动态图、自动求导及逻辑回归

一、计算图计算图是描述运算的有向无环图,有两个主要的元素:节点(Node)和边(Edge),节点表示数据,如向量,矩阵,张量。边表示运算,如加减乘除等。用计算图表示: y=(x+w)∗(w+1)y = \left ( x+w \right ) \ast \left ( w+1 \right )y=(x+w)∗(w+1) ,如下所示:从上面可以看出y = a × b,而a = w + x, b = w + 1,只要给出x和w的值,即可根据计算图得出y的值。计算图与梯度求导求y对w的导数,根据求导规

2022-01-25 14:32:58 1097

原创 pytorch学习笔记一:张量的操作与线性回归

目录一、张量的简介1、张量的基本概念2、张量的属性二、张量的创建1、直接创建2、依数值创建3、依概率创建三、张量的操作1、张量的拼接2、张量的切分3、张量的索引4、张量变换5、算术运算6、高级操作四、线性回归模型一、张量的简介1、张量的基本概念张量是一个【多维数组】,它是一个标量、向量、矩阵的高维拓展。2、张量的属性在 PyTorch 0.4.0 之前,torch.autograd 包中存在 Variable 这种数据类型,主要是用于封装 Tensor,进行自动求导。Variable 主要包含下

2022-01-24 01:16:30 1861

原创 pytorch开发环境的安装

目录一、Anaconda的安装二、pycharm安装三、cuda和cudnn安装四、pytorch安装五、用pycharm运行程序一、Anaconda的安装官网下载地址:链接下载完成后,双击程度,按提示进行安装等待安装即可!win+r,输入cmd打开,输入condaconda一些操作命令● 显示所有的虚拟环境 conda env list● 创建虚拟环境 conda create -n env_name python=3.6● 创建虚拟环境同时安装第三方库 conda

2022-01-24 00:42:23 261

原创 Faster-RCNN论文及原码解读

目录一、模型的整体框架二、网络结构2.1 Conv Layers2.2 RPN(Region Proposal Networks)2.2.1 Anchors box的生成2.2.2 RPN实现原理2.2.2.1 rpn-data2.2.2.2 rpn_loss_cls,rpn_loss_bbox,rpn_cls_prob2.2.2.3 proposal2.2.2.4 roi_data2.3 ROI Pooling2.3.1 ROI Pooling2.3.2 ROI Align2.4 全连接层2.5 损失函数

2022-01-19 15:05:43 3907

原创 CBAM:Convolutional Block Attention Module

目录1、注意力机制2、论文解读2.1 Channel Attention Module(通道注意力机制)2.2 Spatial attention channel2.3 CBAM integrated with a ResBlock in ResNet2.4 实验结果1、注意力机制通俗的讲,注意力机制就是希望网络自动学出图片或文字序列中需要注意的地方。比如,人眼在观察一幅画时,不会将注意力平均分配到画中的每个像素,而是更多的将注意力放到人们关注的地方。从实...

2021-12-30 10:05:18 1237

原创 MMAL-Net 论文解读

目录简介AOLMAPPMMMAL-Net 网络结构论文:链接​​​​​​代码:链接​​​​​​​​​​​​简介在细粒度分类任务中,由于较小的类间差异和较大的类内差异,使其成为一项具有挑战性的问题。针对此情况,作者提出三分支(多分支)多尺度学习网络结构MMAL-Net,该网络结构只要包含两个模块:1、AOLM(attention object location module):用来预测物体的位置;2、APPM(attention part proposal mod.

2021-12-25 17:13:41 2239 2

原创 WS-DAN论文解读

细粒度分类:细粒度分类是为了解决“类内分类”问题,有别于猫狗分类,它解决的是“这只狗是萨摩还是哈士奇”这类问题;这类问题是类别之间的区别较小。WS-DAN(Weakly Supervised Data Augmentation Network)是一种针对细粒度视觉分类任务的方法,采用基于弱监督学习的图像增强的方法,结合注意力机制,这使得网络在不需要额外标注的情况下聚焦那些图像中有“话语权”的部分。论文亮点:1、 Bilinear Attention Pooling(双线性注意力池化机制)2、at

2021-12-25 16:26:11 2603

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除