PyTorch
Alex、木易
这个作者很懒,什么都没留下…
展开
-
动手深度学习PyTorch(十三)GloVe
全局向量的词嵌入(GloVe)让我们先回顾一下word2vec中的跳字模型。将跳字模型中使用softmax运算表达的条件概率P(wj∣wi)P(w_j\mid w_i)P(wj∣wi)记作qijq_{ij}qij,即qij=exp(uj⊤vi)∑k∈Vexp(uk⊤vi),q_{ij}=\frac{\exp(\boldsymbol{u}_j^\top \boldsymbol{v}_i...原创 2020-02-22 14:06:34 · 592 阅读 · 0 评论 -
动手深度学习PyTorch(十二)word2vec
独热编码独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。举个例子,假设我们有四个样本(行),每个样本有三个特征(列),如图:我们的feature_1有两种可能的取值,比如是男/女,这里男用1表示,女用2表示。feature_2 和feature_3各有4种取值(状态)。one-...原创 2020-02-22 14:05:20 · 705 阅读 · 0 评论 -
动手深度学习PyTorch(十一)机器翻译
机器翻译机器翻译是指将一段文本从一种语言自动翻译到另一种语言。因为一段文本序列在不同语言中的长度不一定相同,所以我们使用机器翻译为例来介绍编码器—解码器和注意力机制的应用。1. 读取和预处理数据我们先定义一些特殊符号。其中“<pad>”(padding)符号用来添加在较短序列后,直到每个序列等长,而“<bos>”和“<eos>”符号分别表示序列的开始和结束...原创 2020-02-18 10:05:57 · 1738 阅读 · 1 评论 -
动手深度学习PyTorch(十)Seq2Seq、Attention
1. 编码器—解码器(seq2seq)我们已经在前两节中表征并变换了不定长的输入序列。但在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如英语输入:“They”、“are”、“watching”、“.”法语输出:“Ils”、“regardent”、“.”当输入和输出都是不定长序列时,...原创 2020-02-18 09:59:14 · 594 阅读 · 0 评论 -
动手深度学习PyTorch(九)GRU、LSTM、Bi-RNN
GRU上一篇介绍了循环神经网络中的梯度计算方法。我们发现,当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题。通常由于这个原因,循环神经网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系。门控循环神经网络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较...原创 2020-02-15 16:25:34 · 1559 阅读 · 0 评论 -
动手深度学习PyTorch(八)RNN
RNNRNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。首先我们要明确什么是序列数据,摘取百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,但总归序列数据有一个特点——后面的数据跟前面的数据有关系。RNN它并非刚性地记忆所有固定长...原创 2020-02-15 16:15:16 · 461 阅读 · 0 评论 -
动手深度学习PyTorch(七)pytorch实现线性回归
随着深度学习框架的发展,开发深度学习应用变得越来越便利。我们将介绍如何使用PyTorch实现线性回归的训练。生成数据集我们生成数据集。其中features是训练数据特征,labels是标签。num_inputs = 2num_examples = 1000true_w = [2, -3.4]true_b = 4.2features = torch.tensor(np.random.n...原创 2020-02-13 13:57:37 · 621 阅读 · 1 评论 -
动手深度学习PyTorch(六)线性回归
通过前面几篇文章的铺垫,接下来我们正式进入模型算法的学习中。线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。与回归问题不同,分类问题中模型的最终输出是一个离散值。我们所说的图像分类、垃圾邮件识别、疾病检测等输出为离散值的问题都属于分类问题的范畴。softmax回归则适用于分类问题。由于线性回归和softmax回归都是单层神经网络...原创 2020-02-13 13:56:54 · 652 阅读 · 0 评论 -
动手深度学习PyTorch(四)权重衰减
动手深度学习PyTorch(二)模型选择、欠拟合和过拟合中我们观察了过拟合现象,即模型的训练误差远小于它在测试集上的误差。虽然增大训练数据集可能会减轻过拟合,但是获取额外的训练数据往往代价高昂。本节介绍应对过拟合问题的常用方法:权重衰减(weight decay)。方法权重衰减等价于 L2L_2L2 范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参...原创 2020-02-13 13:55:19 · 992 阅读 · 0 评论 -
动手深度学习PyTorch(三)模型选择、欠拟合和过拟合
训练误差和泛化误差在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵...原创 2020-02-13 13:54:46 · 1080 阅读 · 0 评论 -
动手深度学习PyTorch(二)自动求梯度
在深度学习中,我们经常需要对函数求梯度(gradient)。PyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图,并执行反向传播。本节将介绍如何使用autograd包来进行自动求梯度的有关操作。概念上一节介绍的Tensor是这个包的核心类,如果将其属性.requires_grad设置为True,它将开始追踪(track)在其上的所有操作(这样就可以利用链式法则进行梯度...原创 2020-02-13 13:54:23 · 690 阅读 · 0 评论 -
动手深度学习PyTorch(一)PyTorch基础
引言疫情正当时,在家办公的时候对自己也不能太放松,正好年前学习了很多大数据生态以及机器学习相关的内容,感觉自己达到了一个瓶颈,正需要动手来慢慢消化。接下来就使用pytorch来一步步的实践自己的学习。首先第一篇文章用来持续记录在进行深度学习开发过程中常用的PyTorch常用方法,方便后期遗忘时翻阅。点乘使用torch.mul方法实现,也可直接使用*。当维度不同时,会触发广播机制。>...原创 2020-02-12 16:44:54 · 379 阅读 · 0 评论