Pytorch 属性错误:Can';t获取属性'_默认索引';on<;模块';torchtext.vocab';
我在GoogleColab中运行代码,但遇到了一些错误 torch:1.1.0,torchtext:0.4.0,我更新了,但没用Pytorch 属性错误:Can';t获取属性'_默认索引';on<;模块';torchtext.vocab';,pytorch,Pytorch,我在GoogleColab中运行代码,但遇到了一些错误 torch:1.1.0,torchtext:0.4.0,我更新了,但没用 [2019-09-14 02:57:15,574 INFO] * src vocab size = 49766 [2019-09-14 02:57:15,574 INFO] * history vocab size = 49766 [2019-09-14 02:57:15,574 INFO] * tgt vocab size = 49766 [2019-09-1
[2019-09-14 02:57:15,574 INFO] * src vocab size = 49766
[2019-09-14 02:57:15,574 INFO] * history vocab size = 49766
[2019-09-14 02:57:15,574 INFO] * tgt vocab size = 49766
[2019-09-14 02:57:15,574 INFO] Building model...
Traceback (most recent call last):
File "/content/drive/My Drive/ReDR/train.py", line 109, in <module>
main(opt)
File "/content/drive/My Drive/ReDR/train.py", line 41, in main
single_main(opt, -1)
File "/content/drive/My Drive/ReDR/onmt/train_single.py", line 86, in main
model = build_model(model_opt, opt, fields, checkpoint)
File "/content/drive/My Drive/ReDR/onmt/model_builder.py", line 235, in build_model
vocab = torch.load(opt.drqa_vocab_path)
File "/usr/local/lib/python3.6/dist-packages/torch/serialization.py", line 387, in load
return _load(f, map_location, pickle_module, **pickle_load_args)
File "/usr/local/lib/python3.6/dist-packages/torch/serialization.py", line 574, in _load
result = unpickler.load()
AttributeError: Can't get attribute '_default_unk_index' on <module 'torchtext.vocab' from '/usr/local/lib/python3.6/dist-packages/torchtext/vocab.py'>
[2019-09-14 02:57:15574信息]*src vocab size=49766
[2019-09-14 02:57:15574信息]*history vocab size=49766
[2019-09-14 02:57:15574信息]*tgt vocab大小=49766
[2019-09-14 02:57:15574信息]建筑模型。。。
回溯(最近一次呼叫最后一次):
文件“/content/drive/My-drive/ReDR/train.py”,第109行,在
主要(可选)
文件“/content/drive/My drive/ReDR/train.py”,第41行,主目录
单_干管(可选,-1)
文件“/content/drive/My drive/ReDR/onmt/train_single.py”,第86行,在main中
模型=构建模型(模型选项、选项、字段、检查点)
文件“/content/drive/My drive/ReDR/onmt/model_builder.py”,第235行,内建模型
vocab=火炬加载(可选drqa\u vocab\u路径)
文件“/usr/local/lib/python3.6/dist-packages/torch/serialization.py”,第387行,已加载
返回加载(f,映射位置,pickle模块,**pickle加载参数)
文件“/usr/local/lib/python3.6/dist-packages/torch/serialization.py”,第574行,装入
结果=unpickler.load()
AttributeError:无法在上获取属性“\u default\u unk\u index”
我将感谢你的任何帮助 有相同的问题,解决方案在 编辑ReDR/onmt/model_builder.py 加
这应该可以做到在保存词汇表并加载相同词汇表时检查使用的torchtext版本。这是同一个问题。解决方案是降级到保存它的torchtext版本。或者升级torchtext版本,重新创建vocab pickle文件,然后使用它 情景1
- 使用torchtext 0.3.1保存vocab
- 使用torchtext 0.4.0加载vocab
- 解决方案是,将torchtext从0.4.0降级到0.3.1,然后vocab加载应该可以工作
pip install torchtext==0.3.1
- 使用torchtext 0.3.1保存vocab
- 使用torchtext 0.4.0加载vocab
- 解决方案是,将torchtext从0.3.1升级到0.4.0,然后使用新的torchtext再次保存vocab。现在加载应该可以正常工作了
pip install torchtext==0.4.0
pip install torchtext==0.4.0