拥抱面变压器填充与pad_to_max_length



我通过使用pad_to_max_length = True运行代码,一切都很好。只有我得到如下警告:

FutureWarning:不推荐使用pad_to_max_length参数将在未来的版本中删除,使用padding=True还是padding='longest'填充到批处理中最长的序列,或者使用padding='max_length'填充到最大长度。在这种情况下,你可以使用max_length(例如max_length=45)或将max_length设置为None以填充到模型的最大输入大小(例如,Bert为512)。

但是当我将pad_to_max_length = True更改为padding='max_length'时,我得到这个错误:

RuntimeError: stack expects each tensor to be equal size, but got [60] at entry 0 and [64] at entry 6

如何将代码更改为新版本?我对警告文件有什么错误吗?

这是我的编码器:

encoding = self.tokenizer.encode_plus(
poem,
add_special_tokens=True,
max_length= 60,
return_token_type_ids=False,
pad_to_max_length = True,
return_attention_mask=True,
return_tensors='pt',
)

看来文档还不够完整!

你应该添加truncation=True来模仿pad_to_max_length = True

:

encoding = self.tokenizer.encode_plus(
poem,
add_special_tokens=True,
max_length=self.max_len,
return_token_type_ids=False,
padding='max_length',
truncation=True,
return_attention_mask=True,
return_tensors='pt',
)

相关内容

  • 没有找到相关文章

最新更新