51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python笔记

PyTorch 中 Linear 和 Embedding 网络层

PyTorch 中 Linear 和 Embedding 网络层

厉飞雨 阅读(504) 评论(0) 赞(18)

当我们使用 PyTorch 构建神经网络时,经常使用到一些内置的网络层。本篇文章主要介绍下列层的使用: 1. 线性层(Linear) 2. 词嵌入层(Embedding) 3. 循环网络层(RNN、GRU、LSTM) 1. 线性层 {#title-0} ================= ``` torch.nn.Linear(in_features, out_featu...

PyTorch 构建词表

PyTorch 构建词表

厉飞雨 阅读(368) 评论(0) 赞(21)

在解决 NLP 任务之前, 首先就要构建自己的词表。词表的作用就是给定语料,将文本中的以字为单位、或者以词为单位转换为整数序号,该序号可用于在词嵌入的 lookup table 中搜索词向量。 接下来,我们介绍下词表的构建过程,当然每个人的词表构建过程中对语料的某些处理细节不同,但是大步骤基本都是相同的。我们将使用 LCSTS 数据集构建词表。 LCSTS 数据集是哈工大基...

PyTorch 中 GRU 和 LSTM 循环网络层

PyTorch 中 GRU 和 LSTM 循环网络层

厉飞雨 阅读(339) 评论(0) 赞(21)

在 NLP 任务中主要处理带有序列关系的文本数据,这就需要了解循环(递归)神经网络。下图是一个简单的循环神经网络: ![](http://static.51tbox.com/static/2024-11-13/col/d98677babd2e6ed220f909c00fcc0288/ec9466e38fba4a9ca952272828227941.png.jpg) 网络中包含...

PyTorch 模型保存和加载

PyTorch 模型保存和加载

厉飞雨 阅读(311) 评论(0) 赞(15)

神经网络的训练有时需要几天、几周、甚至几个月,为了在每次使用模型时避免高代价的重复训练,我们就需要将模型序列化到磁盘中,使用的时候反序列化到内存中。 PyTorch 提供了两种保存模型的方法: 1. 直接序列化模型对象 2. 存储模型的网络参数 1. 直接序列化模型对象 {#title-0} ======================= ``` import torc...

PyTorch 初始化 API

PyTorch 初始化 API

厉飞雨 阅读(450) 评论(0) 赞(17)

网络参数初始化的优劣在极大程度上决定了网络的最终性能。比较推荐的初始化方式有 He 初始化是,将参数初始化为服从高斯分布或均匀分布的较小随机整数,同时对参数方差加以规范化。 **处于稳定状态下的神经网络,其参数和数据均值为 0。** PyTorch 中实现了较多的参数初始化 API, 主要如下: 1. 均匀分布初始化 2. 正态分布初始化 3. 全0初始化 4. 全1初始...

PyTorch 池化层

PyTorch 池化层

厉飞雨 阅读(432) 评论(0) 赞(22)

<p>池化层 (Pooling) 降低维度, 缩减模型大小,提高计算速度. 另外一个作用可以缓解卷积层对位置的敏感性.</p> <p>池化层主要有两种:</p> <ol> <li> <p>最大池化</p> </li> <li> <p>平均池化<...

PyTorch Ignite Concepts

PyTorch Ignite Concepts

厉飞雨 阅读(531) 评论(0) 赞(32)

<p>Ignite 是一个可以帮助我们在 PyTorch 中训练和评估神经网络的高级库。简单来讲,使用该训练库可以让我们的训练代码更加简洁,灵活。工具的安装命令如下:</p> <pre><code>pip install pytorch-ignite </code></pre> <p>Ignit...

显存使用分析(PyTorch)

显存使用分析(PyTorch)

厉飞雨 阅读(455) 评论(0) 赞(28)

<p>我们一直使用 PyTorch 进行模型训练,有时会出现显存不足的情况。除了找到对应的解决办法,比如:累加梯度、使用自动混合精度,还应该了解训练时,显存究竟在哪些环节被大量占用。主要有以下四个环节:</p> <ol> <li> <p>CUDA 运行内存</p> </li> <li>...

PyTorch 叶子张量

PyTorch 叶子张量

厉飞雨 阅读(441) 评论(0) 赞(20)

<p>叶子张量是 PyTorch 计算图中的一个重要概念,叶子张量指的就是我们的模型参数,而模型参数一般都是我们自己创建的 <code>requires_grad=True</code> 的张量。它位于整个计算图的开始位置,比如下面这个例子:</p> <pre><code>import torch <...

PyTorch 自定义算子

PyTorch 自定义算子

厉飞雨 阅读(288) 评论(0) 赞(21)

<p>创建 <code>autograd.Function</code>的子类,需要实现两个静态的方法 forward 和 backward。应用该 op 时,调用 apply 方法,不要直接调用 forward 方法。</p> <p>forward 静态方法中第一个参数为 ctx,它可以理解 Function 对象本...