
pytorch学习笔记啊
weixin_40245436
这个作者很懒,什么都没留下…
展开
-
(四)pytorch学习笔记---内容为学习资源摘录整合の线性模型和梯度下降
这是神经网络的第一课,我们会学习一个非常简单的模型,线性回归,同时也会学习一个优化算法-梯度下降法,对这个模型进行优化。线性回归是监督学习里面一个非常简单的模型,同时梯度下降也是深度学习中应用最广的优化算法,我们将从这里开始我们的深度学习之旅、梯度下降法在梯度下降法中,我们首先要明确梯度的概念,随后我们再了解如何使用梯度进行下降。梯度下降法有了对梯度的理解,我们...转载 2019-03-02 11:09:12 · 420 阅读 · 0 评论 -
(十六)pytorch学习笔记---内容为学习资源摘录整合の循环神经网络模块
PyTorch 中的循环神经网络模块一般的 RNN对于最简单的 RNN,我们可以使用下面两种方式去调用,分别是torch.nn.RNNCell()和torch.nn.RNN(),这两种方式的区别在于RNNCell()只能接受序列中单步的输入,且必须传入隐藏状态,而RNN()可以接受一个序列的输入,默认会传入全 0 的隐藏状态,也可以自己申明隐藏状态传入。RNN(...原创 2019-08-16 14:48:35 · 204 阅读 · 0 评论 -
(十七)pytorch学习笔记---内容为学习资源摘录整合のRNN 做图像分类
RNN 做图像分类前面我们讲了 RNN 特别适合做序列类型的数据,那么 RNN 能不能想 CNN 一样用来做图像分类呢?下面我们用 mnist 手写字体的例子来展示一下如何用 RNN 做图像分类,但是这种方法并不是主流,这里我们只是作为举例。这样我们解决了输入序列的问题,对于输出序列怎么办呢?其实非常简单,虽然我们的输出是一个序列,但是我们只需要保留其中一个作为输出结果就可以了,...原创 2019-08-16 14:43:09 · 280 阅读 · 1 评论 -
(十八)pytorch学习笔记---内容为学习资源摘录整合のRNN 用于时间序列的分析
RNN 用于时间序列的分析前面我们讲到使用 RNN 做简单的图像分类的问题,但是 RNN 并不擅长此类问题,下面我们讲一讲如何将 RNN 用到时间序列的问题上,因为对于时序数据,后面的数据会用到前面的数据,LSTM 的记忆特性非常适合这种场景。首先我们可以读入数据,这个数据是 10 年飞机月流量,可视化得到下面的效果。import numpy as npimport pandas a...原创 2019-08-16 14:43:27 · 455 阅读 · 0 评论 -
(十九)pytorch学习笔记---内容为学习资源摘录整合の词嵌入
前面讲了循环神经网络做简单的图像分类问题和飞机流量时序预测,但是现在循环神经网络最火热的应用是自然语言处理,下面我们介绍一下自然语言处理中如果运用循环神经网络,首先我们介绍一下第一个概念,词嵌入。 对于图像分类问题,我们可以使用 one-hot 的类型去编码,比如一共有 5 类,那么属于第二类就可以用 (0, 1, 0, 0, 0) 去表示,对于分类问题,这样当然忒别简单...原创 2019-08-16 14:43:48 · 135 阅读 · 0 评论 -
(二十)pytorch学习笔记---内容为学习资源摘录整合のN-Gram 模型
N-Gram 模型现在我们来讲讲词嵌入如何来训练语言模型,首先我们介绍一下 N-Gram 模型的原理和其要解决的问题。对于一句话,单词的排列顺序是非常重要的,所以我们能否由前面的几个词来预测后面的几个单词呢,比如 'I lived in France for 10 years, I can speak _' 这句话中,我们能够预测出最后一个词是 French。我们可以再简化一下这个模型...原创 2019-08-16 14:44:10 · 222 阅读 · 0 评论 -
(二十一)pytorch学习笔记---内容为学习资源摘录整合のLSTM 做词性预测
LSTM 做词性预测前面我们讲了词嵌入以及 n-gram 模型做单词预测,但是目前还没有用到 RNN,在最后这一次课中,我们会结合前面讲的所有预备知识,教大家如何使用 LSTM 来做词性预测。模型介绍 对于一个单词,会有这不同的词性,首先能够根据一个单词的后缀来初步判断,比如 -ly 这种后缀,很大概率是一个副词,除此之外,一个相同的单词可以表示两种不同的词性,比如 bo...原创 2019-08-16 14:44:32 · 178 阅读 · 0 评论 -
(一)pytorch学习笔记---内容为学习资源摘录整合のTensor and Variable
一、把 PyTorch 当做 NumPy 用import torchimport numpy as npPyTorch 的官方介绍是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构件是张量,所以我们可以把 PyTorch 当做 NumPy 来用,PyTorch 的很多操作好 NumPy 都是类似的,但是因为其能够在 GPU 上运行,所以有着比 NumPy 快很多倍的速度。...转载 2019-01-31 17:18:34 · 216 阅读 · 0 评论 -
(二)pytorch学习笔记---内容为学习资源摘录整合の自动求导
import torchfrom torch.autograd import Variable一、简单情况的自动求导下面我们显示一些简单情况的自动求导,"简单"体现在计算的结果都是标量,也就是一个数,我们对这个标量进行自动求导。x = Variable(torch.Tensor([2]), requires_grad=True)y = x + 2z = y ** 2 + 3pr...转载 2019-02-01 10:43:06 · 207 阅读 · 0 评论 -
(十五)pytorch学习笔记---内容为学习资源摘录整合の深层神经网络MNIST数据
深层神经网络 前面一章我们简要介绍了神经网络的一些基本知识,同时也是示范了如何用神经网络构建一个复杂的非线性二分类器,更多的情况神经网络适合使用在更加复杂的情况,比如图像分类的问题,下面我们用深度学习的入门级数据集 MNIST 手写体分类来说明一下更深层神经网络的优良表现。MNIST 数据集mnist 数据集是一个非常出名的数据集,基本上很多网络都将其作为一个测试的标准,其来...原创 2019-08-16 14:42:07 · 655 阅读 · 0 评论 -
(十四)pytorch学习笔记---内容为学习资源摘录整合の参数初始化
参数初始化 参数初始化对模型具有较大的影响,不同的初始化方式可能会导致截然不同的结果,所幸的是很多深度学习的先驱们已经帮我们探索了各种各样的初始化方式,所以我们只需要学会如何对模型的参数进行初始化的赋值即可。 PyTorch 的初始化方式并没有那么显然,如果你使用最原始的方式创建模型,那么你需要定义模型中的所有参数,当然这样你可以非常方便地定义每个变量的初始化方式,...原创 2019-08-16 14:42:24 · 144 阅读 · 0 评论 -
(十三)pytorch学习笔记---内容为学习资源摘录整合の保存模型,Sequential 和 Module
一、多层神经网络,Sequential 和 Module通过前面的章节,我们了解到了机器学习领域中最常见的两个模型,线性回归模型和 Logistic 回归模型,他们分别是处理机器学习中最常见的两类问题-回归问题和分类问题。下面我们会讲第一个深度学习的模型,多层神经网络。多层神经网络左边是一张神经元的图片,神经元通过突触接受输入,然后通过神经激活的方式传输给后面的神经元。这对比于...原创 2019-03-02 13:27:19 · 564 阅读 · 0 评论 -
(五)pytorch学习笔记---内容为学习资源摘录整合のLogistic 回归模型
Logistic 回归是一种广义的回归模型,其与多元线性回归有着很多相似之处,模型的形式基本相同,虽然也被称为回归,但是其更多的情况使用在分类问题上,同时又以二分类更为常用。一、模型形式 Logistic 回归的模型形式和线性回归一样,都是 y = wx + b,其中 x 可以是一个多维的特征,唯一不同的地方在于 Logistic 回归会对 y 作用一个 logistic...转载 2019-03-02 11:45:31 · 958 阅读 · 1 评论 -
(六)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法sgd(1)
一、随机梯度下降法(sgd) 前面我们介绍了梯度下降法的数学原理,下面我们通过例子来说明一下随机梯度下降法,我们分别从 0 自己实现,以及使用 pytorch 中自带的优化器import numpy as npimport torchfrom torchvision.datasets import MNIST # 导入 pytorch 内置的 mnist 数据from torc...转载 2019-03-02 11:51:07 · 366 阅读 · 0 评论 -
(七)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--动量法(2)
动量法使用梯度下降法,每次都会朝着目标函数下降最快的方向,这也称为最速下降法。这种更新方法看似非常快,实际上存在一些问题。相当于每次在进行参数更新的时候,都会将之前的速度考虑进来,每个参数在各方向上的移动幅度不仅取决于当前的梯度,还取决于过去各个梯度在各个方向上是否一致,如果一个梯度一直沿着当前方向进行更新,那么每次更新的幅度就越来越大,如果一个梯度在一个方向上不断变化,那么...转载 2019-03-02 13:08:03 · 426 阅读 · 0 评论 -
(八)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--Adagrad(3)
Adagrad这个优化算法被称为自适应学习率优化算法,之前我们讲的随机梯度下降以及动量法对所有的参数都使用的固定的学习率进行参数更新,但是不同的参数梯度可能不一样,所以需要不同的学习率才能比较好的进行训练,但是这个事情又不能很好地被人为操作,所以 Adagrad 便能够帮助我们做这件事。Adagrad 的想法非常简单,在每次使用一个 batch size 的数据进行参数更新的时候,我们需要...转载 2019-03-02 13:10:21 · 316 阅读 · 0 评论 -
(九)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--RMSProp(4)
RMSProp RMSprop 是由 Geoff Hinton 在他 Coursera 课程中提出的一种适应性学习率方法,至今仍未被公开发表。前面我们提到了 Adagrad 算法有一个问题,就是学习率分母上的变量 s 不断被累加增大,最后会导致学习率除以一个比较大的数之后变得非常小,这不利于我们找到最后的最优解,所以 RMSProp 的提出就是为了解决这个问题。RMSProp...原创 2019-03-02 13:11:38 · 293 阅读 · 0 评论 -
(十一)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--Adam(6)
AdamAdam 是一个结合了动量法和 RMSProp 的优化算法,其结合了两者的优点。Adam 算法下面我们来实现以下 adam 算法def adam(parameters, vs, sqrs, lr, t, beta1=0.9, beta2=0.999): eps = 1e-8 for param, v, sqr in zip(parameters, vs,...原创 2019-03-02 13:12:43 · 373 阅读 · 0 评论 -
(十)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--Adadelta(5)
Adadelta¶Adadelta 算是 Adagrad 法的延伸,它跟 RMSProp 一样,都是为了解决 Adagrad 中学习率不断减小的问题,RMSProp 是通过移动加权平均的方式,而 Adadelta 也是一种方法,有趣的是,它并不需要学习率这个参数。Adadelta 法def adadelta(parameters, sqrs, deltas, rho): e...原创 2019-03-02 13:17:18 · 2011 阅读 · 2 评论 -
(十二)pytorch学习笔记---内容为学习资源摘录整合の梯度下降方法--反向传播算法
反向传播算法 前面我们介绍了的模型,整个处理的基本流程都是定义模型,读入数据,给出损失函数ff,通过梯度下降法更新参数。PyTorch 提供了非常简单的自动求导帮助我们求解导数,对于比较简单的模型,我们也能手动求出参数的梯度,但是对于非常复杂的模型,比如一个 100 层的网络,我们如何能够有效地手动求出这个梯度呢?这里就需要引入反向传播算法,自动求导本质是就是一个反向传播算法。反向传播算...原创 2019-03-02 13:18:30 · 227 阅读 · 0 评论 -
(三)pytorch学习笔记---内容为学习资源摘录整合の动态图和静态图
目前神经网络框架分为静态图框架和动态图框架,PyTorch 和 TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现形式。 TensorFlow 使用静态图,这意味着我们先定义计算图,然后不断使用它,而在 PyTorch 中,每次都会重新构建一个新的计算图。 静态图和动态图之间的优缺点。对于使用者来说,两种形式的计算图有着非常大的区别,同时静态图和动...转载 2019-03-02 11:04:48 · 134 阅读 · 0 评论