こちらのページで紹介されているコードをそっくりそのまま利用してgoogle colabで実行したところ、
python3
1--------------------------------------------------------------------------- 2AttributeError Traceback (most recent call last) 3<ipython-input-69-1c35e1d08a13> in <module>() 4 13 5 14 #train model 6---> 15 train_loss, _ = train() 7 16 8 17 #evaluate model 9 105 frames 11/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in linear(input, weight, bias) 12 1686 if any([type(t) is not Tensor for t in tens_ops]) and has_torch_function(tens_ops): 13 1687 return handle_torch_function(linear, tens_ops, input, weight, bias=bias) 14-> 1688 if input.dim() == 2 and bias is not None: 15 1689 # fused op is marginally faster 16 1690 ret = torch.addmm(bias, input, weight.t()) 17 18AttributeError: 'str' object has no attribute 'dim'
こちらのエラーが発生しました。
15行目でtrain()
を呼んでいるのですが、より詳しくは
python3
1# function to train the custom BERT model 2def train(): 3 4 model.train() 5 total_loss, total_accuracy = 0, 0 6 7 # empty list to save model predictions 8 total_preds=[] 9 10 # iterate over batches 11 for step, batch in enumerate(train_dataloader): 12 print(batch) 13 # progress update after every 50 batches. 14 if step % 50 == 0 and not step == 0: 15 print(' Batch {:>5,} of {:>5,}.'.format(step, len(train_dataloader))) 16 17 batch = [r for r in batch] 18 sent_id, mask, labels = batch 19 20 model.zero_grad() 21 22 # get model predictions for the current batch 23 preds = model(sent_id, mask)
この最後の行で止まっているようです。
自分で調べたところ、transformerのバージョンを下げると直る、というような記事を見つけたため試してみましたが、解決には至りませんでした。transformer3.0.0を利用しています。
素人質問で大変恐縮ですが、何卒ご教示のほどよろしくお願いいたします。