【error】旧版本的torchtext会出现的问题

出错代码:

torch.save(vocab_en, opt.vocab_path)

或pickle.dump(dict(vocab_en), open(opt.vocab_path,'wb'))

都会报pickle的错误

 

其中

from torchtext import data
EN = data.Field(init_token=EOS, eos_token=EOS, lower=True)
train_data, val_data, test_data = datasets.TranslationDataset.splits(path=opt.data, train='train', validation='valid', test='test',exts=('.input', '.output'), fields=(EN, EN)) 
EN.build_vocab(train_data.src, train_data.trg, min_freq=opt.min_freq)

return EN.vocab

 

pip list 查看torchtext版本,发现版本0.1.1,怀疑是版本太低的问题

 

pip --upgrade torchtext 升级版本,问题解决

 

另一种解决问题的方式:

使用dill代替pickle

https://blog.csdn.net/cswangjiawei/article/details/83067754

 

torch.save会报pickle错误的原因是 其内部默认也是利用pickle实现的,在torch.save时改变一个参数,使其内部利用dill实现,也可以解决这个问题

 

参考:https://github.com/pytorch/text/issues/73

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值