PyTorch 中 GRU 和 LSTM 循环网络层
在 NLP 任务中主要处理带有序列关系的文本数据,这就需要了解循环(递归)神经网络。下图是一个简单的循环神经网络: ![](http://static.51tbox.com/static/2024-11-13/col/d98677babd2e6ed220f909c00fcc0288/ec9466e38fba4a9ca952272828227941.png.jpg) 网络中包含...
在 NLP 任务中主要处理带有序列关系的文本数据,这就需要了解循环(递归)神经网络。下图是一个简单的循环神经网络: ![](http://static.51tbox.com/static/2024-11-13/col/d98677babd2e6ed220f909c00fcc0288/ec9466e38fba4a9ca952272828227941.png.jpg) 网络中包含...
神经网络的训练有时需要几天、几周、甚至几个月,为了在每次使用模型时避免高代价的重复训练,我们就需要将模型序列化到磁盘中,使用的时候反序列化到内存中。 PyTorch 提供了两种保存模型的方法: 1. 直接序列化模型对象 2. 存储模型的网络参数 1. 直接序列化模型对象 {#title-0} ======================= ``` import torc...
网络参数初始化的优劣在极大程度上决定了网络的最终性能。比较推荐的初始化方式有 He 初始化是,将参数初始化为服从高斯分布或均匀分布的较小随机整数,同时对参数方差加以规范化。 **处于稳定状态下的神经网络,其参数和数据均值为 0。** PyTorch 中实现了较多的参数初始化 API, 主要如下: 1. 均匀分布初始化 2. 正态分布初始化 3. 全0初始化 4. 全1初始...
池化层 (Pooling) 降低维度, 缩减模型大小,提高计算速度. 另外一个作用可以缓解卷积层对位置的敏感性. 池化层主要有两种: 1. 最大池化 2. 平均池化 1. 池化层计算 {#title-0} =================== ![](http://static.51tbox.com/static/2024-11-13/col/e38406f51c61...
Ignite 是一个可以帮助我们在 PyTorch 中训练和评估神经网络的高级库。简单来讲,使用该训练库可以让我们的训练代码更加简洁,灵活。工具的安装命令如下: ``` pip install pytorch-ignite ``` Ignite 中主要有以下 4 个重要概念: 1. Engine 2. Events And Handler 3. state 4. Metr...
我们一直使用 PyTorch 进行模型训练,有时会出现显存不足的情况。除了找到对应的解决办法,比如:累加梯度、使用自动混合精度,还应该了解训练时,显存究竟在哪些环节被大量占用。主要有以下四个环节: 1. CUDA 运行内存 2. 模型的固定参数 3. 模型的前向计算 4. 模型的反向计算 5. 优化方法统计量 1. CUDA 运行内存 {#title-0} ========...
叶子张量是 PyTorch 计算图中的一个重要概念,叶子张量指的就是我们的模型参数,而模型参数一般都是我们自己创建的 `requires_grad=True` 的张量。它位于整个计算图的开始位置,比如下面这个例子: ``` import torch def test01(): a = torch.tensor([[2.0, 1.0]], requires_grad...
创建 `autograd.Function `的子类,需要实现两个静态的方法 forward 和 backward。应用该 op 时,调用 apply 方法,不要直接调用 forward 方法。 forward 静态方法中第一个参数为 ctx,它可以理解 Function 对象本身,其方法 save_for_backward 用于在前向计算时,将反向计算用到的中间结果进行缓存...
图像的归一化是将不同量纲的特征归一化到指定的范围内,可以消除不同特征量纲的影响。图像规范化则是将图像规范化到相同的分布。两者都有利于加快模型训练、收敛。 1. 归一化 {#title-0} ================= 图像的每个像素值的范围是 \[0, 255\],我们在将图像送入网络之前会将其归一化到 \[0, 1\] 或者 \[-1, 1\] 之间。 1....
torchvision 提供了一些用于图像裁剪的方法,这些方法也可以用于图像增强。主要介绍下: 1. PIL 和 Tensor 转换 2. 多种图像裁剪方法 1. PIL 和 Tensor 转换 {#title-0} ============================= 处理图像之前,需要先读取图片。我们可以使用 torchvision.io.image 模块的 r...