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

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

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

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

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

Python

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

Q&A

解決済

1回答

417閲覧

Pytorch Dataset DataLoader

mn.py

総合スコア41

DataSet

DataSetは、ADO.NETアーキテクチャのコンポーネントです。データベースから取得したレコードをメモリ領域に格納するクラスを指します。データの保持やテーブル間のリレーション・制約といった保持も可能です。

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/10/06 13:30

編集2020/10/06 14:48

DataLoaderのふるまいの正解がわからない

PyTorchで自作のDetasetを作ってDataLoaderに渡して中身の確認をしています。
CSVの中身です。
ID CLS VAL (VALに0、1が40個入っています)
0   0 1,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,1,1,1,1,1,0
1   0  1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,0,1,1,1,0
2   1  1,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,0
3   0  1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0
4   0  1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,0
...   ... ...
995  0  1,0,0,1,0,0,0,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,0
996  1  1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0
997  0  1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0
998  1  1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,0
999  1  1,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,0
[ID]と[VAL]を[data]としてlistに-->[[1, 0, 1,・・・・0, 1, 0, 1, 0, 1]、[1, 0, 0, ・・・・0, 0, 0,]・・ ]]
[CLS]をlabelとして[list]に-->[[0],[1],[0],・・・・・・]]
Datasetでは、 returnで data,label を1組ずつ返してます。

下記のコードでprintして、

Python

1dataset=MyDataset('data.csv') #csvを読み込んで、dataとlabelを返すようなdatasetです。 2dataset_loader = torch.utils.data.DataLoader(dataset, 3 batch_size=, shuffle=True) 4for i, data in enumerate(dataset_loader): 5 print(data)

出力のイメージ

datasizeは40個の要素が入ったベクトルが1000個、batch_size=2であれば、2組500セット返ってくることをイメージ
[[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],1.0],[[1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1],0.0]・・・・

実際出てきたのはこのように2つづつのdataと最後にlabelがくっついたものでした。
[[tensor([0, 0]), tensor([0, 0]), tensor([0, 0]), tensor([0, 0]), tensor([0, 0]), tensor([0, 0]), ・・・・・・・・・・([0, 0])], tensor([0., 0.], dtype=torch.float64)]

色々試して見たら、DataLoaderで、batch_size=Noneにするとイメージしていたような出力となりました。

python

1dataset=MyDataset('data.csv') 2dataset_loader = torch.utils.data.DataLoader(dataset, 3 batch_size=None, shuffle=True)

これはやっぱりDatasetでdata,labelの返し方がまずいんでしょうか?
それともDataLoaderの出力としてはこれであってるんでしょうか??
ネットや本も結構調べたのですが、よくわかりません。
初心者な質問ですが、アドバイスなどよろしくお願いいたします。

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

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

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

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

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

meg_

2020/10/06 13:43

> datasizeは40個の要素が入ったdata1000個あるとして 上記がよく分かりませんでした。'data.csv'はどのようなデータなのでしょうか?
tiitoi

2020/10/06 13:43

MyDataset のソースを記載してください
meg_

2020/10/06 22:18

> Datasetでは、 returnで data,label を1組ずつ返してます。 であれば質問者さんの出力のイメージ通りになりそうですが、MyDatasetの定義を確認しないと詳しいことは分かりませんね。
guest

回答1

0

自己解決

listをtensorに変換したらイメージ通りになりました。
お騒がせいたしました。
ありがとうございました。

投稿2020/10/07 03:13

mn.py

総合スコア41

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問