pack_padded_sequence 类似与一个压缩操作。

举个例子:
有一个tensor([[1,2,0], [3,0,0], [4,5,6]]),经过 pack_padded_sequence 之后会得到一个tensor([4,1,3,5,2,6]);再经过pad_packed_sequence之后会得到tensor([[1,2,0], [3,0,0], [4,5,6]])

问:为什么需要这个操作呢?

    答:提高计算效率

逐行解释

from torch.nn.utils.rnn import pack_padded_sequence, pad_packed_sequence # 导包
seq = torch.tensor([[1,2,0], [3,0,0], [4,5,6]])  # shape: [batch_size, seq_len]
lens = [2, 1, 3]  # 每个batch的非零个数,[1,2,0]非零个数为2,[3,0,0]非零个数为1,[4,5,6]非零个数为3
# batch_first 表示seq的第一维是batch_size
packed = pack_padded_sequence(seq, lens, batch_first=True, enforce_sorted=False)
print(packed)
# PackedSequence(data=tensor([4, 1, 3, 5, 2, 6]), batch_sizes=tensor([3, 2, 1]), sorted_indices=tensor([2, 0, 1]), unsorted_indices=tensor([1, 2, 0]))
seq_unpacked, lens_unpacked = pad_packed_sequence(packed, batch_first=True)
print(seq_unpacked)
# tensor([[1, 2, 0], [3, 0, 0], [4, 5, 6]])
print(lens_unpacked)
# tensor([2, 1, 3])

pack_padded_sequence;pad_packed_sequence相关推荐

  1. pack_padded_sequence 和 pad_packed_sequence

    参考: pytorch中如何处理RNN输入变长序列padding pack_padded_sequence 和 pad_packed_sequence 大佬们写的都非常nice啊

  2. 通过例子10分钟快速看懂pad_sequence、pack_padded_sequence以及pad_packed_sequence

    前言 import torch import torch.nn as nnfrom torch.nn.utils.rnn import pad_sequence from torch.nn.utils ...

  3. pack_padded_sequence和pad_packed_sequence详解

    先提供一个官网解读 https://pytorch.org/docs/1.0.1/nn.html#torch.nn.utils.rnn.pack_padded_sequence 在使用深度学习特别是L ...

  4. NLP中各框架对变长序列的处理全解

    ©PaperWeekly 原创 · 作者|海晨威 学校|同济大学硕士生 研究方向|自然语言处理 在 NLP 中,文本数据大都是变长的,为了能够做 batch 的训练,需要 padding 到相同的长度 ...

  5. PyTorch中使用LSTM处理变长序列

    使用LSTM算法处理的序列经常是变长的,这里介绍一下PyTorch框架下使用LSTM模型处理变长序列的方法.需要使用到PyTorch中torch.nn.utils包中的pack_padded_sequ ...

  6. 让阿宅不再寂寞的聊天机器人

    阿宅爱上了阿美 在一个有星星的夜晚 飞机从头顶飞过 流星也划破那夜空 虽然说人生并没有什么意义 但是爱情确实让生活更加美丽 阿美嫁给了二富 在一个有香槟的晴天 豪车从眼前驶过 车笛也震动那烈阳 虽然说 ...

  7. pytorch中torch.nn.utils.rnn相关sequence的pad和pack操作

    目录 一.pad_sequence 二.pack_padded_sequence 三.pad_packed_sequence 四.pack_sequence 自然语言处理任务中,模型的输入一般都是变长 ...

  8. transformer与vit

    transformer结构,位置编码复现 https://wandb.ai/authors/One-Shot-3D-Photography/reports/-Transformer-Vmlldzo0M ...

  9. [论文阅读笔记70]基于token-token grid模型的信息抽取(5篇)

    论文1: TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking 年份 ...

  10. evaluate函数使用无效_使用Keras和Pytorch处理RNN变长序列输入的方法总结

    最近在使用Keras和Pytorch处理时间序列数据,在变长数据的输入处理上踩了很多坑.一般的通用做法都需要先将一个batch中的所有序列padding到同一长度,然后需要在网络训练时屏蔽掉paddi ...

最新文章

  1. APRILTAG 标准图片:TAG25H9
  2. mysql model first,一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
  3. Flex/Flash Builder里实用但被忽略的编译参数
  4. elk-logstash时区问题
  5. c语言实现链表结构6,用c语言实现的链表结构--数据结构实验
  6. cholesky分解java代码_Cholesky 分解(转)
  7. python透明图处理_python – 强制matplotlib图的背景是透明的
  8. SpringCloud学习笔记028---在SpringBoot中整合多数据源_实战项目
  9. 图例解析四大UML关系图使用
  10. Leetcode每日一题:381.insert-delete-getrandom-o1-duplicates-allowed(时间插入、删除和获取随机元素-允许重复)
  11. beego mysql session_Go语言之高级篇beego框架之cookie与session
  12. Java逐帧动画播放器V0.1.0
  13. 从极客到 CEO,开发者应该如何提升技术领导力?
  14. php exif信息,显示照片exif信息PHP代码
  15. DevOps系列之 —— 持续规划与设计(三)敏捷项目管理的方法【Kanban 与 Scrum】
  16. 小米基于OpenStack搭建私有云平台技术架构大揭秘!
  17. 固态硬盘linux提升,固态硬盘在Linux系统下提升使用率妙方
  18. Ubuntu下web开发,php编辑器推荐
  19. 分享一个超级狠的面试题与经验
  20. 什么软件可以测试自己的穿衣,心理测试:4个女孩,哪个穿衣风格跟你最像?秒测你的真实性格...

热门文章

  1. 3G模块SIM5360E实现拨号上网功能
  2. 系统提供人民币(CNY)美元(USD)英镑(GBP)价值转换
  3. 如何识别服务器连接的偶发故障?
  4. 2017 Google IO 开发者大会直播入口
  5. 3种常用的缓存读写策略
  6. 淮安市第八届计算机比赛,淮安市科学技术协会
  7. 糖尿病性视网膜病变分级诊断
  8. destoon参考大全
  9. C. Alternating Sum(数论——等比数列公式与变换)
  10. 嵌入式Linux资源网站,嵌入式Linux名词及资源