| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 人工智能 -> pytorch中 nn.utils.rnn.pack_padded_sequence和nn.utils.rnn.pad_packed_sequence -> 正文阅读 |
|
|
[人工智能]pytorch中 nn.utils.rnn.pack_padded_sequence和nn.utils.rnn.pad_packed_sequence |
1. 官方文档:torch.nn — PyTorch 1.11.0 documentation ? 2. 应用背景:在使用pytorch处理数据时,一般是采用batch的形式同时处理多个样本序列,而每个batch中的样本序列是不等长的,导致rnn无法处理。所以,通常的做法是先将每个batch按照最长的序列进行padding处理等长的形式。 但padding操作会带来一个问题,那就是对于多数进行padding过的序列,会导致rnn对它的表示多了很多无用的字符,我们希望的是在最后一个有用的字符后就可以输出该序列的向量表示,而不是在很多padding字符后。 这时候,pack操作就派上场了,可以理解成,它是将一个经过padding后的变长序列压紧,压缩后就不含padding的字符0了。具体操作就是:
3. 函数详解:3.1 nn.utils.rnn.pack_padded_sequencetorch.nn.utils.rnn.pack_padded_sequence — PyTorch 1.11.0 documentation
3.2 nn.utils.rnn.pad_packed_sequencetorch.nn.utils.rnn.pad_packed_sequence — PyTorch 1.11.0 documentation
4. 代码实例:4.1 使用时:
4.2 不使用时:
? 5. 注意几个参数:5.1?batch_first包括RNN中,参数默认为 False,也就是它鼓励输入的第一维不是batch,这与我们常规输入相悖,我们习惯的输入为(batch_size, seq_len, embedding_dim),所以需要注意,要么该数据输入,要不该参数设置为True。 5.2?enforce_sorted参数默认为 True,也就是它默认batch中每个序列已经按照长度由大到小进行排列了,所以需要注意,如果没有进行排序,则改为False。 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/21 2:43:14- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |