我通过使用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',
)