当前位置:   article > 正文

NLP神经网络模型训练时,不同batch可以padding到不同长度嘛?_一个batch中得到的tokenizer是一样长的吗

一个batch中得到的tokenizer是一样长的吗

同一个batch内要padding到一样长度,不同batch之间可以不一样

这一点,对于 (绝大多数) NLP模型都是这样的

同一个batch内要padding到一样长度

神经网络,内部大都是矩阵的运算,batch训练,需要矩阵输入

因此一个batch要padding到一样的长度,才能形成一个矩阵,像

[[1,2],
 [3,4,5]]
  • 1
  • 2

它并不是一个矩阵,矩阵需要每个维度的长度一样才行

不同batch之间可以不一样

一般batch个句子经过embedding层之后,它的维度会变成 [batch_size, seq_length, embedding_size],

不同batch之间padding的长度可以不一样,是因为神经网络模型的参数与 seq_length 这个维度并不相关。

下面从两个常见的模型 RNN / Transformer 去细致的解释这个问题:

RNN/LSTM

如对于RNN/LSTM 等循环神经网络,seq_length 这个维度只决定 RNN/LSTM 循环计算多少步,而不会影响模型的参数,如下图:

在这里插入图片描述

所以你可能会发现,Pytorch中的 RNN/LSTM 默认是 [seq_length, batch_size, embedding_size] 形式的输入,和常见的 [batch_size, seq

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/780041
推荐阅读
相关标签
  

闽ICP备14008679号