前言:
由于RNN在处理文本时,通常文本需要进行padding补齐到最长句子的长度,但在计算时,实际上有效的RNN计算仅是前面的非padding文本,而后续padding也会经过RNN计算从而导致了浪费了较多的计算资源和时间。
则当在不考虑截断文本长度的情况下,即保留所有语料信息的情况下,就该考虑下pytorch中的变长序列处理机制了。
一、变长处理的解决的问题:
原始语料的样例数据如下:
![6e54a55944ec652013eaf95244899041.png](https://img-blog.csdnimg.cn/img_convert/6e54a55944ec652013eaf95244899041.png)
检查下语料的文本最大长度和文本最小长度:
![f45553fa2a558e39ed57c3d4e46d1920.png](https://img-blog.csdnimg.cn/img_convert/f45553fa2a558e39ed57c3d4e46d1920.png)
即在进行padding时,将所有长度都补齐至43的长度,当文本仅有一个包含信息的单词,
但仍需要经过42次神经元去计算pad标记,这样会导致计算结果存在偏差,而合理的做法是,当LSTM计算完有效信息,即非pad标记信息