任何人都可以帮我找到错误“AttributeError: 'Example' object has no attribute 'src_len'”的解决方案吗?

问题描述

我正在从事一个项目,该项目旨在使用 pytorch 制作用于机器翻译的 Transformer 神经网络。 我面临的错误是“AttributeError: 'Example' object has no attribute 'src_len'”.. 任何帮助,将不胜感激。 谢谢

fields = {"English": ("eng",english),"Urdu": ("ur",urdu)}

train_data,test_data,valid_data= TabularDataset.splits(
path="",train="train.json",test="test.json",validation="val.json",format="json",fields=fields
)

english.build_vocab(train_data,max_size=10000,min_freq=2)
urdu.build_vocab(train_data,min_freq=2)

train_iterator,valid_iterator,test_iterator = BucketIterator.splits(
(train_data,valid_data,test_data),batch_size=32,sort_within_batch=True,sort_key=lambda x: (x.src_len),device='cuda',)

for batch in train_iterator:
print(batch) 

错误信息:

AttributeError                            
Traceback (most recent call last)
<ipython-input-27-9fe6d4873776> in <module>()
----> 1 for batch in train_iterator:
  2   print(batch)
  2 frames
<ipython-input-26-1c01ecf39930> in <lambda>(x)
   4     batch_size=32,5     sort_within_batch=True,----> 6     sort_key=lambda x: (x.src_len),7     device='cuda',8 )

   AttributeError: 'Example' object has no attribute 'src_len'`

解决方法

对象 x 没有任何名为 src_len 的属性。请检查 len(x) 是否有效。