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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

PyTorch

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

機械学習

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

Q&A

解決済

1回答

602閲覧

PytorchのDataLoader特長と必要性は何ですか❓

insecticide

総合スコア315

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

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

PyTorch

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

機械学習

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

1グッド

0クリップ

投稿2022/07/30 06:48

これまでPytorchが用意してくれたClass
torch.utils.data.TensorDataset(...)と torch.utils.data.DataLoader(...)を両方利用して、初めてNNの訓練を行えましたが、

最近、numpy.random.choice()関数を知り、上記と同じことを簡単に実現できるような感じです。

素朴な質問ですけれども、
numpy.random.choice()関数がある以上、面倒くさくtorch.utils.data.TensorDataset(...)と torch.utils.data.DataLoader(...)を両方利用して訓練を行う必要性はあるのでしょうか。

言い換えれば、DataLoader(...)はnumpy.random.choice()にはない機能や特長あるのでしょうか。

ご教授お願い致します

退会済みユーザー👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/07/30 14:43

これ系の質問はよくわからない理由で2-3のマイナス評価が毎度つきますね…。私は大事な質問と思いますので中和の+1をします。 マイナス評価をされた方へ: もし「質問の意図が分からない、投げやりすぎる」等が理由だった場合、以下の質問は無視してください。純粋に「プログラムを実装する分からないことがある、(速さなのか、メンテナンス性なのか、可読性なのかいろいろあるとは思いますが)最良な手法を探りたい、その上で何が最良か分からないので材料が欲しい」それだけで十分な課題と私は思います。いかがお考えでしょうか?
guest

回答1

0

ベストアンサー

言い換えれば、DataLoader(...)はnumpy.random.choice()にはない機能や特長あるのでしょうか。

ここにありますが、Numpyはエポックごとにランダムな値を作るわけではないので、Numpyを使うのであれば毎度seedを作ってやる必要がある――というように見えます。
Pytorchにあれこれ任せるメリットは、DataLoaderでリアルタイムにデータ増強ができる(膨大な数の学習データを用意しなくても都度生成できる)とかその辺にあるように思います。

投稿2022/07/30 14:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

insecticide

2022/07/30 16:37

>Numpyを使うのであれば毎度seedを作ってやる必要がある そうですか、貴重なご解説ありがとうございます! ーーーーーーーーーーーーーーーーーーーーーーーー >DataLoaderでリアルタイムにデータ増強ができる これについて、「DataLoader」というよりdatasetを生成するプロセスの工夫でしょうか。 例えば transform = transforms.Compose( [transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor()] ) dataset = ImageFolder("data", transform) また宜しくお願いいたします
退会済みユーザー

退会済みユーザー

2022/07/31 07:25

> 「DataLoader」というよりdatasetを生成するプロセスの工夫 その通りです。そのあたりを全部やってくれるので、Data agumentationしたデータをデータセットに格納しておくより、適当なデータを用意してバッチごとにData augmentationした方が便利ですね、というつもりで書きました。
insecticide

2022/08/01 14:21

なるほど。非常に勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問