Example code to understand pytorch padding

Example code to understand pytorch padding

## test 
import torch
import torch.nn as nn

batch_size = 3
max_length = 3

batch_in = torch.LongTensor(batch_size, max_length).zero_()
batch_in[0] = torch.LongTensor([1, 2, 3])
batch_in[1] = torch.LongTensor([4, 5, 0])
batch_in[2] = torch.LongTensor([6, 0, 0])

seq_lengths = [3, 2, 1] 
# real seq lengths which means non-zero(padding) element in batch_in

print(batch_in)

rnn = torch.nn.GRU(10,16, batch_first=True)
emb = torch.nn.Embedding(20, 10)
t1 = emb(batch_in)
t2 = torch.nn.utils.rnn.pack_padded_sequence(t1, seq_lengths, batch_first=True)
t1.shape

y1, _ = rnn(t1)
y2, _ = rnn(t2)
y2, _ = torch.nn.utils.rnn.pad_packed_sequence(y2)

print(y1.shape)
print(y2.shape)

The outputs are as followed. Note that in y2, corresponding places are set to 0; while it is not in y1.

print(y1)
tensor([[[-0.2798, -0.3856, -0.0821,  0.1419, -0.0711,  0.3442, -0.2280,
          -0.3013,  0.4323, -0.0061, -0.0059,  0.0153,  0.0043, -0.0575,
          -0.0899,  0.0167],
         [-0.3635, -0.1256, -0.1606,  0.0027, -0.1943,  0.2244, -0.2939,
          -0.4380,  0.0758,  0.0657,  0.2524,  0.1803,  0.3322, -0.1517,
          -0.0686,  0.2098],
         [-0.5649,  0.1938,  0.1958, -0.1223,  0.2357,  0.2236, -0.1336,
          -0.4538, -0.0373,  0.0701,  0.2694,  0.1607,  0.0233, -0.4146,
          -0.2436, -0.1231]],

        [[-0.1592,  0.1595, -0.1047,  0.1702,  0.2267,  0.0230, -0.1799,
           0.0939,  0.0281,  0.3224,  0.0434, -0.0119, -0.1329, -0.3400,
          -0.1222, -0.1626],
         [-0.3771, -0.0135, -0.3905, -0.2723, -0.0649,  0.0405, -0.4896,
          -0.3519,  0.5476,  0.5207,  0.1581, -0.3331, -0.2819, -0.4226,
          -0.5203, -0.1131],
         [-0.4858,  0.2086, -0.2146, -0.2873,  0.1970, -0.0200, -0.3474,
          -0.3273, -0.1428,  0.3200,  0.3431, -0.1556,  0.0167, -0.4716,
          -0.4962,  0.0401]],

        [[-0.2618, -0.0852,  0.3207,  0.1903, -0.1152,  0.0338, -0.0622,
           0.2939,  0.2542,  0.2764,  0.1221,  0.2355, -0.2659,  0.3058,
           0.0794, -0.1431],
         [-0.4471,  0.2109,  0.1460, -0.1279,  0.2117, -0.0292, -0.0887,
           0.1132, -0.2051,  0.2217,  0.2989,  0.0810,  0.0741, -0.0756,
          -0.0479,  0.1462],
         [-0.5627,  0.3191,  0.0562, -0.2493,  0.3844, -0.0904, -0.1191,
          -0.0179, -0.4021,  0.1875,  0.3719, -0.0419,  0.1960, -0.2602,
          -0.1424,  0.2273]]], grad_fn=<TransposeBackward0>)
print(y2)
tensor([[[-0.2798, -0.3856, -0.0821,  0.1419, -0.0711,  0.3442, -0.2280,
          -0.3013,  0.4323, -0.0061, -0.0059,  0.0153,  0.0043, -0.0575,
          -0.0899,  0.0167],
         [-0.1592,  0.1595, -0.1047,  0.1702,  0.2267,  0.0230, -0.1799,
           0.0939,  0.0281,  0.3224,  0.0434, -0.0119, -0.1329, -0.3400,
          -0.1222, -0.1626],
         [-0.2618, -0.0852,  0.3207,  0.1903, -0.1152,  0.0338, -0.0622,
           0.2939,  0.2542,  0.2764,  0.1221,  0.2355, -0.2659,  0.3058,
           0.0794, -0.1431]],

        [[-0.3635, -0.1256, -0.1606,  0.0027, -0.1943,  0.2244, -0.2939,
          -0.4380,  0.0758,  0.0657,  0.2524,  0.1803,  0.3322, -0.1517,
          -0.0686,  0.2098],
         [-0.3771, -0.0135, -0.3905, -0.2723, -0.0649,  0.0405, -0.4896,
          -0.3519,  0.5476,  0.5207,  0.1581, -0.3331, -0.2819, -0.4226,
          -0.5203, -0.1131],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000]],

        [[-0.5649,  0.1938,  0.1958, -0.1223,  0.2357,  0.2236, -0.1336,
          -0.4538, -0.0373,  0.0701,  0.2694,  0.1607,  0.0233, -0.4146,
          -0.2436, -0.1231],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000],
         [ 0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,  0.0000,
           0.0000,  0.0000]]], grad_fn=<CopySlices>)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,129评论 0 10
  • The Inner Game of Tennis W Timothy Gallwey Jonathan Cape ...
    网事_79a3阅读 11,042评论 2 18
  • 数月前,我碰到了自己命中的伯乐!她相信我,她肯定我,愿意给我机会,给我搭建平台让我尽情展示!数月之后的今天,被告知...
    小么鱼阅读 343评论 0 0
  • 最近看到知乎上有个热门提问: “读书的人与不读书的人有什么区别?” 我仔细思考了这个问题,觉得很幼稚。这是一个特功...
    海上的橘子皮阅读 1,167评论 4 6
  • 每次出去买东西我都想抽自己,今天买了很多吃的,一个破鸡翅包饭10块钱,我居然买了。就是一个很小很小的鸡翅,里...
    孤城落日阅读 136评论 0 0