首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytorch学习笔记(二十一): 使用 pack_padded_sequence

下面附上一张 pack_padded_sequence 原理图(其实只是将三维的输入去掉PAD的部分搞成了二维的。在RNN前向的时候,根据batch_sizes参数取对应的时间步计算。) ?...在使用 pytorch 的 RNN 模块的时候, 有时会不可避免的使用到 pack_padded_sequence 和 pad_packed_sequence, 当使用双向RNN的时候, 必须要使用...pack_padded_sequence !!...但是在使用 pack_padded_sequence 时有个问题, 即输入 mini-batch 序列的长度必须是从长到短排序好的, 当mini-batch 中的样本的顺序非常的重要的话, 这就有点棘手了...在这种情况下, 我们依然要使用 pack_padded_sequence, 所以需要先将 mini-batch 中样本排序, 之后输入到 RNN/LSTM/GRU 计算,最后再恢复成以前的顺序.

4.9K20

教你几招搞定 LSTMs 的独门绝技(附代码)

PyTorch 中 pack_padded_sequence 和 pad_packed_sequence 的原理和作用。 3.在基于时间维度的反向传播算法中屏蔽(Mask Out)用于填充的符号。...TIPS: 文本填充,使所有文本长度相等,pack_padded_sequence , 运行LSTM,使用 pad_packed_sequence,扁平化所有输出和标签, 屏蔽填充输出, 计算交叉熵损失函数...使用 pack_padded_sequence 来确保 LSTM 模型不会处理用于填充的元素。 3. 在 LSTM 上运行 packed_batch 4....使用 pad_packed_sequence 解包(unpack)pack_padded_sequence 操作后的序列 5. 对 LSTM 的输出进行变换,从而可以被输入到线性全连接层中 6....使用 pack_padded_sequence 确保 LSTM 不会额外处理序列中的填充项(Facebook 的 Pytorch 团队真应该考虑为这个绕口的 API 换个名字 !) 4.

3.2K10
您找到你想要的搜索结果了吗?
是的
没有找到
领券