深度学习(PyTorch)
文章平均质量分 69
通过理论与实战相结合使用PyTorch进行深度学习
爱编程的机器猫
这个作者很懒,什么都没留下…
展开
-
ResNet详解与CIFAR10数据集实战
ResNet详解与CIFAR10数据集实战1、引言2、ResNet原理3、ResNet解决网络退化的机理(1)深层梯度回传顺畅(2)网络自身构建的优势(3)传统的线性网络很难去拟合“恒等映射”,而ResNet可以4、CIFAR10数据集实战(1)导入数据1、引言由于神经网络深度增加而导致的参数量急剧增大使得我们对其训练越来越困难,并且随着深度增加会出现网络退化现象。这时我们就需要采取一种方法去有效地解决这个问题。在2015年,何凯明大神提出了residual nets(深度残差网络,后面简称为ResNe原创 2022-03-08 20:45:32 · 4415 阅读 · 4 评论 -
GAN详解与PyTorch MINIST手写数字生成实战
GAN原理详解与minist数据集实战欢迎使用Markdown编辑器GAN简介GAN论文原理如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdow原创 2022-03-08 10:06:22 · 4358 阅读 · 0 评论 -
(八)循环神经网络(RNN)
(八)循环神经网络(RNN)why RNN当我们采用此种方式构建网络的时候,需要对所有单词都进行编码,然后每个单词都需要进行w,b向量运算。这样当输入的单词句子很长的时候就需要很多的w,b这样就增大了我们的计算量。更为致命的一个问题是,这样的网络计算的构建没有考虑上下文的语境信息,只是考虑了当前单词的信息,这样不方便我们更好理解句子的意思。基于没法考虑上下文信息和参数过大的问题,我们可以采用权值共享的方法。但是这样还是存在一个问题,上文的语境信息会随着句子不断向后而变弱,所以我们需要让上文的语境信原创 2022-02-08 13:46:33 · 657 阅读 · 0 评论 -
(七)卷积神经网络实战
(七)卷积神经网络实战本次根据Lenet5,使用CIFAR10数据集进行卷积神经网络实战下图是Lenet5神经网络结构,我们将根据以下结构来构建卷积神经网络以下是源代码(可以直接运行)lenet5.py:import torchfrom torch import nnclass Lenet5(nn.Module): """ for cifar10 datasets. """ def __init__(self): super(Lenet5,原创 2022-02-07 12:10:45 · 356 阅读 · 0 评论 -
(六)Normalization
(六)Normalizationwhy从图中可以看出,当输入太小或者太大的时候,函数的取值随着输入的变化几乎为0。这样就会发生梯度离散的情况,因此我们很有必要把输入控制在一个小一点的区间内。所以我们通过normalization操作,把输入的值等效变换在一个小一点的区间之内。我们假设变换后的值以0为均值,以σ\sigmaσ为方差,即N(0,σ2)N(0, \sigma ^2)N(0,σ2)。应用我们可以把这种方法应用在图像领域,叫做Image Normalization。我们把输入的像素值等效缩放原创 2022-02-06 13:38:39 · 2683 阅读 · 0 评论 -
(五)卷积神经网络(CNN)
(五)卷积神经网络(CNN)为什么需要卷积神经网络下面我们先来看一幅图片这时一幅28*28的图片,由于是彩色图片,每个像素点有三个通道。基于这张图片的数据,我们构建如下的网络结构计算网络需要的参数可以发现,就算是这个比较简单,数据量比较小的网络也需要390K个参数。也占用了比较大的内存。而在早期的时候内存根本就装不下这些参数。当时科学家们借助了生物学的概念上面的小孩子,他一眼不会看到全部桌上的东西,最先看到的应该是蛋糕,然后再慢慢看到其他的东西。人眼的这个属性就是局部相关性,所以科学家们基原创 2022-02-04 12:07:25 · 749 阅读 · 0 评论 -
(四)激活函数与loss梯度
(四)激活函数与loss梯度激活函数科学家对于青蛙的神经元的研究,发现青蛙的神经元有多个输入,中间是一个对输入加权的响应,但是这个响应不是线性的输出,而是基于一个阈值来作为标准,当响应值大于阈值时才会输出,而且输出的大小是固定的。这个计算的函数就是阶梯函数。上图就是基于青蛙的神经元发明的一个计算机上的模型。它的输入是x1,...,xnx_1,...,x_nx1,...,xn,然后经过加权求和,但并不是直接输出,而是经过一个阶梯函数后输出。这里就可以比较好的解释激活函数激活的意思,如果计算的结原创 2022-01-29 12:44:54 · 1035 阅读 · 0 评论 -
(三)PyTorch基本内容
(三)PyTorch基本内容基本数据类型从python对比中可以看到,python和pytorch的基本数据类型除了string外都有对应。由于pytorch不是一个完备的语言库,而是一个面向数据计算的GPU加速库,所以pytorch中是没有对string类型支持的。那么怎么表达string呢,我们采用编码的方式的来表达,提供如下两种思路:(1)one-hot(2)embedding这里对这两种方法不再多说操作这里randn()是初始化一个两行三列的,服从正太分布N(0,1)tensor原创 2022-01-29 09:43:26 · 576 阅读 · 0 评论 -
(二)线性回归问题
(二)线性回归问题首先我们来看一个方程:y=w∗x+by = w * x + by=w∗x+b这里我们只要得到两组xxx和yyy的值就可以对www和bbb精确求解。但是在实际问题中我们得到线性方程不会是这样,而是:y=w∗x+b+ϵy = w * x + b + \epsilony=w∗x+b+ϵ这里的ϵ\epsilonϵ就是我们实际生活中的一些干扰因素,这里我们称作噪声(noise)这时我们仅用两组xxx和yyy的值就无法求解,所以我们需要得到很多的方程组才能求解。这里我们给出如下公原创 2022-01-28 16:59:41 · 675 阅读 · 0 评论 -
(一)梯度下降算法
(一)梯度下降算法深度学习的核心精髓就是梯度下降算法。在某些方面深度学习表现出来的结果可以接近人的智力,就是因为它可以求解出一个巨大的函数,而这个函数的用来求解的方法就是梯度下降算法。下面我们来看一个函数:loss=x2∗sin(x)loss = x^2 * sin(x)loss=x2∗sin(x)令f(x)=x2∗sin(x)f(x) = x^2 * sin(x)f(x)=x2∗sin(x)所以f′(x)=2xsin(x)+x2cos(x)f'(x) = 2xsin(x) + x^原创 2022-01-28 11:19:35 · 1643 阅读 · 0 评论