🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2032閲覧

教師付き分類モデルで 'str' object has no attribute 'dim'

maplesugar_17

総合スコア32

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/01 04:06

こちらのページで紹介されているコードをそっくりそのまま利用して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を利用しています。

素人質問で大変恐縮ですが、何卒ご教示のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maplesugar_17

2021/02/01 06:26 編集

これは、preds = model(sent_id, mask)の部分を変更すれば良いのでしょうか...?
maplesugar_17

2021/02/01 06:32

解決しましたが、新たなエラーが見つかりました:(RuntimeError: weight tensor should be defined either for all 2 classes or no classes but got weight tensor of shape: [3])何卒ご教示ください...
jbpb0

2021/02/01 07:23 編集

> preds = model(sent_id, mask)の部分を変更すれば良いのでしょうか...? 違います def forward(... の中の _, cls_hs = self.bert(... を、上記Webページ内のLysandreJikさんが書かれてる方法で修正します (二通り書かれてるどちらかに)
guest

回答1

0

投稿2021/02/28 11:21

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問