自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bryce-HJ

WeChat Official Accounts:OAOA

  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 pyTorch小函数积累【持续更新中······】

torch.mul() 和 torch.mm() 的区别:torch.mul(a, b)是矩阵a和b对应位相乘,a和b的维度必须相等;torch.mm(a, b)是矩阵相乘,a的列数必须等于b的行数;

2020-07-12 22:39:49 505 1

原创 SPPNET 经典论文【论文笔记 + pytorch实现】

Contents0 摘要1 Intorduction2 基于空间金字塔池化的深度网络2.1 卷积层和特征图2.2 空间金字塔池化层2.3 训练网络3 用于图像分类的SPP-NET3.1 ImageNet 2012分类实验3.2 Experiments on VOC 2007 Classification3.3 Experiments on Caltech1014 用于目标检测的SPP-NET5 总结6 pyTorch实现SPP层0 摘要     对于深度神经网络的输入图片尺寸必须是固定的,还记得在R-

2020-07-30 19:25:23 3984 2

原创 Selective Search for Object Recognition【论文笔记】

0 摘要     这篇论文主要介绍了选择性搜索(Selective Search)的方法,该方法结合了穷举搜索(Exhausticve Search)和分割(Segmentation)的优势,实现了低数据量、与类别无关且高定位质量的特点。     穷举搜索(Exhaustive Search):选择一个窗口扫描整张图像,改变窗口的大小,继续扫描整张图像。这种做法是比较原始直观,但是改变窗口大小扫描整张图像,非常耗时。 若能过滤掉一些无用的box将会节省大量时间。这就是本文中Selective Searc

2020-07-29 17:27:21 394

原创 R-CNN 经典论文【论文笔记】

摘要(论文的主要创新点)提出一个简单并且可扩展的检测算法,可以将mAP(mean Average Precision)在VOC2012最好结果的基础上提高30%以上——达到了53.3%。该方法的两个关键点为:在候选区域(region proposals)上自下而上使用大型卷积神经网络(CNNs),用以定位和分割物体。当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的微调,可以使性能明显提升因为将候选区域与CNNs结合,所以该方法称为R-CNN:Regions with C

2020-07-28 20:31:49 1409

原创 ImageNet Classification with Deep Convolutional Neural Networks【论文笔记】

Contents1 简介2 数据集3 网络结构3.1 ReLU非线性激活函数3.2 在多GPUs上训练3.3 局部响应归一化3.4 重叠池化3.5 整体框架4 减少过拟合4.1 图像增广4.2 Dropout5 训练中的超参数设置1 简介      本论文出自2012年,在当时带标签数据集是很少的(e.g. NoRB, Caltech-101/256, CIFAR10/100),这些数据集仅有几万张图片组成,在数据增广基础上,利用这些数据集可以很好地处理简单的物体识别任务,但是现实中物体展现出很强的可变

2020-07-27 20:09:02 725

原创 Dog Breed Identification——Kaggle比赛微调GoogleNet网络(重点学习图片标签预处理及保存.csv文件)

Contents一、预处理官网下载的数据集(重点理解)1 建立文件夹函数 os.makedirs(path)2 os.listdir() 返回文件夹包含的文件或文件夹的名字的列表3 random.shuffle(train_files)4 file.split('.')[0]5 shutil.copy二、模型使用微调FineTuning的GoogleNetKaggle中的Dog Breed Identification,从官网上的“data”下载数据及后得到一个名为dog-breed-identifica

2020-07-26 20:10:58 1707

原创 matplotlib可视化函数积累【持续更新中······】

1 from mpl_toolkits import mplot3dmpl_toolkits.mplot3d是Matplotlib库里面专门用来画三维图的工具包。画三维图需要先得到一个Axes3D对象,一下两种方式可以得到Axes3D对象:1. fig = plt.figure() ax = p3d.Axes3D(fig)2. fig = plt.figure() ax = fig.add_subplot(111, projection='3d')2 ax.plot_wireframe(

2020-07-25 21:00:21 239

原创 Python函数积累【持续更新中······】

Python小函数Contents1. *args,**kwargs2. enumerate( sequence, [start=0] )3. norm( input,p,dim )1. *args,**kwargs# 这两个都表示可变参数如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args;如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs。def test(a, *args, *

2020-07-25 20:59:38 320

原创 CIFAR10图像分类ResNet模型实战(pytorch)

CIFAR10图像分类ResNet模型实战(pytorch)1 ResNet18网络实现及略微改进2 学习过程中的部分问题总结:2.1 为什么nn.ReLU() 设置 inplace=True?2.2 nn.Sequential(*layers)加了一个\*2.3 net.train()/ net.eval()2.4 用到的argsparse模块2.5创建记录数据的txt文件2.6 sum_loss 、 predicted 、total 、correct (重点理解)2.7 __init__中使用nn.Re

2020-07-25 20:09:38 4751 2

原创 python相对路径和绝对路径总结

Contents1 当前工作目录1.1 os.getcwd() 函数可用于获取当前工作目录1.2 os.chdir() 函数可用于获取当前工作目录2 相对路径和绝对路径3 python的os.path模块提供的路径相关函数3.1 os.getcwd() 函数:获取当前工作目录3.2 os.path.abspath(path) :返回 path 参数的绝对路径的字符串3.3 os.path.isabs(path):判断 path 是否为绝对路径3.4 os.path.relpath(path, start)

2020-07-24 14:06:43 8620

原创 Momentum、Adagrad、RMSprop、Adadelta、Adam【详细公式总结对比、pytorch实现】

先放一张公式汇总图:Contents1 Momentum动量优化算法1.1 梯度下降的问题1.2 动量法1.3 动量法的简洁实现2 ADAGRA算法2.1 算法简介2.2 从零开始实现2.3ADAGRAD简洁实现3 RMSprop算法3.1 算法简介3.2 从零开始实现3.3 RMSprop简洁实现4 AdaDelta优化算法4.1 算法简介4.2 从零开始实现4.3 AdaDelta的简洁实现5 ADAM优化算法5.1 算法简介5.2 从零开始实现5.3 Adam简洁实现1 Momentum动量优化

2020-07-22 18:39:35 1206 1

原创 【深度学习】梯度下降、随机梯度下降、小批量随机梯度下降(pyTorch)

Contents1 梯度下降和随机梯度下降1.1 一维梯度下降1.2 学习率1.3 多维梯度下降1.4 随机梯度下降2 小批量随机梯度下降2.1 读取数据2.2 从零开始实现2.4 小批量随机梯度下降简洁实现1 梯度下降和随机梯度下降1.1 一维梯度下降%matplotlib inlineimport numpy as npimport torchimport mathimport syssys.path.append('..')import d2lzh_pytorch as d2ld

2020-07-22 16:49:59 959 4

原创 DenseNet稠密连接网络(pyTorch)

Contents1 Introduction2 稠密块3 过渡层4 DenseNet模型5 获取数据并训练1 Introduction与ResNet的主要区别在于,DenseNet里模块B的输出不是像ResNet那样和模块A的输出相加,而是在通道维上连结。这样模块A的输出可以直接传入模块B后面的层。在这个设计里,模块A直接跟模块B后面的所有层连接在了一起。这也是它被称为“稠密连接”的原因。如果用公式表示的话,传统的网络在 [公式] 层的输出为:而对于ResNet,增加了来自上一层输入的identit

2020-07-19 17:42:59 1701

原创 ResNet残差网络(pyTorch)

Contents1 Intorduction2 残差块3 ResNet模型4 获取数据和训练模型1 IntorductionResNet在2015年的ImageNet图像识别挑战赛夺魁。由于存在梯度消失和梯度爆炸问题,深度很深的神经网络是很难训练的。解决方法之一是人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系,即跳跃连接(skip connection)。用它可以构建能够训练深度网络的ResNets,这种神经网络被称为Residual Networks(ResNets)。

2020-07-19 17:28:41 1171

原创 批量归一化【附详细解释及代码】

Contents1 Intorduction2 批量归一化层2.1 对全连接层做批量归一化2.2 对卷积层层做批量归一化2.3 预测时的批量归一化3 从零开始实现批量归一化4 使用pyTorch的nn模块实现批量归一化1 Intorduction批量归一化(batch normalization)层,它能让较深的神经网络的训练变得更加容易。通常来说,数据标准化预处理对于浅层模型就足够有效了。随着模型训练的进行,当每层中参数更新时,靠近输出层的输出较难出现剧烈变化。但对深层神经网络来说,即使输入数据已做

2020-07-18 17:22:57 3268

原创 【深度学习】GOOGLENET(含并行连结的网络)(pyTorch)

Contents1 Introduction2 Inception块3 GOOGLENET模型4 获取数据和训练模型1 Introduction在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet的网络结构大放异彩。它虽然在名字上向LeNet致敬,但在网络结构上已经很难看到LeNet的影子。GoogLeNet吸收了NiN中网络串联网络的思想,并在此基础上做了很大改进。2 Inception块GoogLeNet中的基础卷积块叫作Inception块,得名于同名电影《盗梦空间》(

2020-07-18 17:16:23 258

原创 【深度学习】NIN网络中的网络(pyTorch)

Contents1 Introduction2 NIN块3 NIN模型4 获取数据和训练模型1 IntroductionLeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进主要在于如何对这两个模块加宽(增加通道数)和加深。而网络中的网络(NiN)提出了另外一个思路,即串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。1×1卷积层可以看成全连接层,其中空间维度

2020-07-18 17:14:11 297

原创 【深度学习】VGGNet实现(Visual Geometry Group)(pyTorch)

Contents1 VGG基础块2 VGG网络模型3 获取数据和训练模型在这里插入图片描述1 VGG基础块VGG是由几个重复元素的网络块(VGG块)组合起来的。VGG块的组成规律是:连续使用数个相同的填充为1、窗口形状为3×33×3的卷积层后接上一个步幅为2、窗口形状为2×22×2的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。这里使用vgg_block函数来实现这个基础的VGG块,它可以指定卷积层的数量和输入输出通道数。import timeimport torchfrom

2020-07-17 22:11:31 538

原创 【深度学习】ALEXNET实现(pyTorch)

Contents1 Intorduction2 AlexNet网络结构3 预处理数据4 训练模型1 Intorduction2012年,AlexNet横空出世。AlexNet使用了8层卷积神经网络,并以很大的优势赢得了ImageNet 2012图像识别挑战赛。它首次证明了学习到的特征可以超越手工设计的特征,从而一举打破计算机视觉研究的前状。AlexNet与LeNet的设计理念非常相似,但也有显著的区别:第一,与相对较小的LeNet相比,AlexNet包含8层变换,其中有5层卷积和2层全连接隐藏层,

2020-07-17 22:10:09 911 2

原创 【深度学习】LeNet实现(pyTorch)

Contents1 LeNet模型2 获取数据和训练模型     LeNet是1998年用来识别手写数字图像的卷积神经网络,它展示了通过梯度下降训练卷积神经网络可以达到手写数字识别在当时最先进的结果。这个奠基性的工作第一次将卷积神经网络推上舞台,为世人所知。1 LeNet模型LeNet分为卷积层块和全连接层块两个部分。卷积层块里的基本单位是卷积层后接最大池化层:卷积层用来识别图像里的空间模式,如线条和物体局部,之后的最大池化层则用来降低卷积层对位置的敏感性。卷积层块由两个这样的基本单位重复堆叠构成。

2020-07-17 22:06:56 346

原创 【深度学习】卷积层、Padding、Pooling、池化层(pyTorch)

Ccontents1 二维卷积层1.1 二维互相关运算1.2 二维卷积层1.3 图像中物体边缘检测1.4 通过数据学习核数组1.5 卷积运算和互相关运算1.6 特征图和感受野2 填充和步幅2.1 填充(Padding)2.2 步幅(stride)3 多通道输入和多通道输出3.1 多通道输入3.2 多通道输出3.3 1×1卷积层4 池化(pooling)4.1 二维最大池化层和平均池化层4.2 填充和步幅4.3 多通道1 二维卷积层1.1 二维互相关运算import torchfrom torch i

2020-07-17 16:38:43 3879

原创 【深度学习】使用GPU计算模型(pyTorch)

使用GPU计算模型1 计算设备PyTorch可以指定用来存储和计算的设备,如使用内存的CPU或者使用显存的GPU。默认情况下,PyTorch会将数据创建在内存,然后利用CPU来计算。# 用torch.cuda.is_available()查看GPU是否可用:import torchfrom torch import nntorch.cuda.is_available() True# 查看GPU数量torch.cuda.device_count() 1# 查看当前GPU索引号,

2020-07-16 22:44:57 682

原创 【深度学习】读取和存储训练好的模型参数(pyTorch)

读取、存储和部署模型1 读写Tensor可以直接使用save函数和load函数分别存储和读取Tensor。save使用Python的pickle实用程序将对象进行序列化,然后将序列化的对象保存到disk,使用save可以保存各种对象,包括模型、张量和字典等;而load使用pickle unpickle工具将pickle的对象文件反序列化为内存。import torch from torch import nnx=torch.ones(3)torch.save(x, 'x.pt')x2

2020-07-16 20:43:41 3402

原创 【深度学习】自定义神经网络层(pyTorch)

自定义神经网络层1 不含模型参数的自定义层import torchfrom torch import nnclass CenteredLayer(nn.Module): def __init__(self, **kyargs): super(CenteredLayer, self).__init__(**kyargs) def forward(self, x): return x - x.mean() layer = CenteredLa

2020-07-16 20:01:21 1481 1

原创 【深度学习】模型参数的访问、初始化和共享(pyTorch)

Contents程序主要使用到的函数总结如下:模型参数的访问、初始化和共享1 访问模型参数2 初始化模型参数3 自定义初始化方法4 共享模型参数程序主要使用到的函数总结如下:# 1 访问模型参数for name, param in net.named_parameters():for param in net.parameters():self.weight1 = nn.Parameter(torch.rand(20,20))# 2 初始化模型参数init.normal_(param, m

2020-07-16 18:05:39 802 1

原创 【深度学习】模型构造的几种方法(pyTorch)

4.1 模型构造4.1.1 继承Module类来构造模型import torchfrom torch import nnclass MLP(nn.Module): def __init__(self, **kwargs): # **kwargs表示如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs。 super(MLP, self).__init__(**kwargs) self.hidden = n

2020-07-16 16:44:44 357

原创 K折交叉验证在KAGGLE比赛——房价预测上的实现【附详细解释】(pyTorch)

K折交叉验证在KAGGLE比赛——房价预测的实现(pyTorch)1 Intorduction2 K折交叉验证3 完整实例步骤3.1 获取和读取数据集3.2 预处理数据3.3 训练模型3.4 K折交叉验证3.5 模型选择3.6 预测结果3.7 Final Results1 Intorduction    通过KAGGLE比赛上最简单的入门实例——房价预测,来完成一个神经网络从搭建到训练、调参、最后预测结果的完整实例。    包括利用pandas数据预处理、模型的设计、超参数的选择等,通过K折交叉验

2020-07-16 11:09:44 2322

原创 Pandas基本操作【持续更新······】

iloc 睡前写pd.concatpd.get_dummiesfillnaall_features[:n_train].values

2020-07-16 11:03:08 323

原创 【深度学习】Dropout实现(pyTorch)

3.13 Dropout解决过拟合问题3.13.1 方法本节中提到的丢弃法特指 倒置丢弃法(inverted dropout)设丢弃概率为p,那么有p的概率hi会被清零,有1−p的概率hi会除以1−p做拉伸以保证不改变下层输入的期望值。在测试模型时,我们为了拿到更加确定性的结果,一般不使用丢弃法。3.13.2 从零开始实现%matplotlib inlineimport torchimport torch.nn as nnimport numpy as npimport syssys.

2020-07-15 11:18:56 4357 6

原创 【深度学习】过拟合 && L2正则化实现(pyTorch)

3.11 模型选择、欠拟合和过拟合3.11.1 训练误差和泛化误差训练误差(training error)指模型在训练数据集上表现出的误差;泛化误差(generalization error)指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。3.11.2 模型选择验证集(validation set)为预留一部分在训练数据集和测试数据集以外的数据来进行模型选择,以进而调参;K折交叉验证(K-fold cross-validation):由于验证数据集不参与模

2020-07-15 09:27:54 1814

原创 【深度学习】多层感知机及其实现(pyTorch)

3.8 多层感知机3.8.1 隐藏层为什么引入非线性激活函数?如果不用激励函数, 在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论神经网络有多少层,输出都是输入的线性组合,与单层神经网络效果相同,这种情况就是最原始的感知机;所以引入非线性函数作为激活函数,使得输出不再是输入的线性组合,可以逼近任意函数。3.8.2 激活函数#ReLU(Rectified Linear Unit)%matplotlib inlineimport torchimport matplotlib.py

2020-07-14 15:02:12 1488

原创 pyTorch中torch.range()和torch.arange()的区别

torch.range()和torch.arange()的区别x = torch.range(-8, 8)y = torch.arange(-8, 8)print(x, x.dtype)print(y, y.dtype)output:   tensor([-8., -7., -6., -5., -4., -3., -2., -1., 0., 1., 2., 3., 4., 5.,6., 7., 8.]) torch.float32   tensor([-8, -7, -6,

2020-07-14 12:16:52 2512

原创 matplotlib速查表 | 2020新版 | 方便查询 | 【搬运分享自用】

matplotlib官方速查表【2020】Introduction【cheatsheet】【handout-beginner】【handout-intermediate】【handout-tips】Introductiongithub源链接入口github上开源的matplotlib速查表【2020版】,作者将它们分别命名为【cheatsheet】、【handout-beginner】、【handout-intermediate】、【handout-tips】,名字很形象,保运分享便于自用:【che

2020-07-14 11:33:39 895

原创 【深度学习】Fashion-mnist && softmax实现(pyTorch)

torchvision包是服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision主要由以下几部分构成:torchvision.datasets: 一些加载数据的函数及常用的数据集接口;torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;torchvision.utils: 其他的一些有用的方法。...

2020-07-13 21:15:04 877

原创 【深度学习】线性回归实现(pyTorch)

3.1 线性回归import torchfrom time import timea = torch.ones(1000)b = torch.ones(1000)c = torch.zeros(1000)start = time()for i in range(1000): c[i] = a[i] + b[i]print(time()-start)start = time()d = a + bprint(time()-start)0.01695466041564941

2020-07-13 20:58:33 378

原创 动手学深度学习(pytorch)中d2lzh_pytorch包的安装(附资源)

d2lzh_pytorch包【动手学深度学习(pyTorch)】3.2.1节中原文:“我们将上面的plt作图函数以及use_svg_display函数和set_figsize函数定义在d2lzh_pytorch包里。以后在作图时,我们将直接调用d2lzh_pytorch.plt。由于plt在d2lzh_pytorch包中是一个全局变量,我们在作图前只需要调用d2lzh_pytorch.set_figsize()函数可打印矢量图并设置图的尺寸。”CSDN中下载d2lzh_pytorch包好多都需要积分,

2020-07-12 19:49:22 12563 4

原创 当你随便浏览一个网页时,你知道背后做了多少工作吗?

Surf the InternetDown一个Web页面当点击一个页面时的整个过程:获取一个IP地址DNS和ARP域内路由选择到DNS服务器Web客户-服务器交互:TCP和HTTP附专有名词缩写及全称:Down一个Web页面考虑一个PC机访问一个Web页面时整个计算机网络所做的工作!假定条件:假定小A在某大学内读书,当他将便携机(笔记本电脑)通过网线连接到宿舍网口,该网口与学校的以太网交换机相连,交换机又与学校的路由器相连。学校的这台路由器与一个ISP相连,这里假定为Comcast.net;C

2020-07-05 22:29:10 395

原创 计算机网络之链路层★知识点汇总★

计算机网络之链路层链路层:链路、接入网和局域网1链路层概述2 差错监测和纠正技术3 多路访问链路和协议4 交换局域网4.1 链路层寻址和ARP4.2 以太网4.3 链路层交换机5 链路虚拟化:网络作为链路层链路层:链路、接入网和局域网1链路层概述链路层提供的服务:链路层的基本服务是将数据报通过单一通信链路从一个结点移动到相邻结点,此外它还包括:成帧(framing)、链路接入(媒体访问控制(Medium Access Control, MAC)用于多路访问问题)、可靠交付(通过确认和重传取得)、差错

2020-07-05 22:25:35 473

原创 计算机网络之网络层★知识点汇总★

计算机网络之网络层网络层1 引言介绍2 虚电路和数据报网络3 路由器工作原理4 网际协议:因特网中的转发和编址4.1 数据报格式4.2 IPv4编址4.3 因特网控制报文协议4.4 IPv65 路由选择算法5.1 链路状态路由选择算法LS5.2 距离向量路由选择算法DV5.3 层次路由选择6 因特网中的路由选择协议6.1 自治系统内部路由选择协议:RIP6.2 自治系统内部路由选择协议:OSFP6.3 自治系统间的路由选择协议:BGP7 广播和多播路由算法7.1 广播路由选择算法7.2 多播网络层1 引

2020-07-05 22:22:44 1441

原创 计算机网络之应用层★知识点汇总★

应用层1应用层协议原理研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。1.1 网络应用程序体系结构应用程序体系结构(application architecture)由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。现代网络应用程序中所使用的的两种主流体系结构:客户-服务器体系结构和对等(P2P)体系结构。客户-服务器体系结构(client-server architecture)中,有一个总是打开的主机称为服务器,该服务器具有固定的、周知的地址,该地址称

2020-07-05 22:12:56 720

d2lzh_pytorch包【下载即可用】

【动手学深度学习(pyTorch)】d2lzh_pytorch包,亲测可用,已经所有函数写在包中。免费下载,热心无偿分享。

2020-07-12

QT实现TCP通信(客户端和服务器同时包含在一个cpp文件中)

QT实现TCP通信代码,一个文件中同时包含客户端和服务器,可以选择是客户端还是服务器,初学者学习自用。

2020-04-21

空空如也

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

TA关注的人

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