1、解决办法
参考:通过CCproxy配置内网linux服务器_cc proxy-CSDN博客
按照解决办法1,重新下载transformers,仍然报错
2、解决办法
在网上查找资料后发现, 这和tranformers库的版本有关系。在transfromer库3.X版本后,模型不再返回张量的元组,而是返回特定对象。pip show transformer指令查看版本。如果版本高于4.0,那么输出的确实会是字符串,解决办法是在一开始的模型定义语句里增加一个参数return_dict=flase,让模型正确返回一个元组。
如果不想考虑这么麻烦,或者加上了return_dict后,解释器报错,那就直接用x=bert_model([input_ids,attention_mask,token_type_ids])[1]即可。因为模型的输出是包含两个张量的元组。第一部分是所有时刻的输出,第二部分就是最后一层隐藏层的输出。用[1]就能直接得到最后一层张量,避免了格式问题。
(1)return_dict=true仍然报错
(2)return_dict=false正确