質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Colaboratory

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

0回答

807閲覧

ValueError: num_samples should be a positive integer value, but got num_samples=0 と表示されてしまう

jaepy

総合スコア0

Google Colaboratory

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2022/11/14 12:52

前提

BERTによる文章分類の勉強中です。本にあるお手本コードを自分の研究に沿っていじりながら進めていたところ、詰まってしまいました。

実現したいこと

データローダの作成

発生している問題・エラーメッセージ

エラーメッセージ ValueError Traceback (most recent call last) <ipython-input-21-5497bf7ea51d> in <module> 12 # 学習データはshuffle=Trueにする。 13 dataloader_train = DataLoader( ---> 14 dataset_train, batch_size=32, shuffle=True 15 ) 16 dataloader_val = DataLoader(dataset_val, batch_size=256) 1 frames /usr/local/lib/python3.7/dist-packages/torch/utils/data/sampler.py in __init__(self, data_source, replacement, num_samples, generator) 106 if not isinstance(self.num_samples, int) or self.num_samples <= 0: 107 raise ValueError("num_samples should be a positive integer " --> 108 "value, but got num_samples={}".format(self.num_samples)) 109 110 @property ValueError: num_samples should be a positive integer value, but got num_samples=0

該当のソースコード

python
ソースコード

# データローダーの作成 dataset_for_loader = [ {'data':torch.tensor([0,1]), 'labels':torch.tensor(0)}, {'data':torch.tensor([2,3]), 'labels':torch.tensor(1)}, {'data':torch.tensor([4,5]), 'labels':torch.tensor(2)}, {'data':torch.tensor([6,7]), 'labels':torch.tensor(3)}, ] loader = DataLoader(dataset_for_loader, batch_size=2) # データセットからミニバッチを取り出す for idx, batch in enumerate(loader): print(f'# batch {idx}') print(batch) ## ファインチューニングではここでミニバッチ毎の処理を行う loader = DataLoader(dataset_for_loader, batch_size=2, shuffle=True) for idx, batch in enumerate(loader): print(f'# batch {idx}') print(batch) # トークナイザのロード tokenizer = BertJapaneseTokenizer.from_pretrained(MODEL_NAME) # 各データの形式を整える max_length = 128 dataset_for_loader = [] text = df['text'].values.tolist() # データを格納 encoding = tokenizer( text, max_length=max_length, padding='max_length', truncation=True ) encoding['labels'] = df['label'].values.tolist() # ラベルを追加 encoding = { k: torch.tensor(v) for k, v in encoding.items() } dataset_for_loader.append(encoding) random.shuffle(dataset_for_loader) # ランダムにシャッフル n = len(dataset_for_loader) n_train = int(0.6*n) n_val = int(0.2*n) dataset_train = dataset_for_loader[:n_train] # 学習データ dataset_val = dataset_for_loader[n_train:n_train+n_val] # 検証データ dataset_test = dataset_for_loader[n_train+n_val:] # テストデータ dataloader_train = DataLoader( dataset_train, batch_size=32, shuffle=True<---------------------ここです ) dataloader_val = DataLoader(dataset_val, batch_size=256) dataloader_test = DataLoader(dataset_test, batch_size=256)

試したこと

エラーメッセージで検索したところ、学習データの読み込みがうまくいっていない等の回答が多いのですが、私のコードで、データの読み込みがうまくいっていない箇所がわからず困っています。

補足情報(FW/ツールのバージョンなど)

Google Colabolatory
transformers==4.18.0 fugashi==1.1.0 ipadic==1.0.0 pytorch-lightning==1.6.1

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

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

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

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

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

bsdfan

2022/11/15 01:04

encoding = { k: torch.tensor(v) for k, v in encoding.items() } dataset_for_loader.append(encoding) この部分が怪しいです。dataset_for_loader が想定の形になってますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問