問題タブ [dataloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
36 参照

python - トレーニング セットのラベルを取得する際の問題

関数を使用してデータを、、、train_test_splitに分割し、それを CNN にフィードしていましたが、混同行列を作成して予測テンソルと比較するためにラベル テンソルにアクセスする方法がわからないという問題があります。私はそれが基本的な質問であることを知っていますが、とにかくあなたの助けに感謝します.X_trainX_testy_trainy_testutils.data.DataLoader

そして私は使った

私のネットワークにデータを供給するために、train_setの後にtargets属性を入力するだけでラベルにアクセスできるようですが、そのようtrain_set.targetsには機能しません。ラベルを取得するにはどうすればよいですか?

0 投票する
1 に答える
5761 参照

python - PyTorch DataLoader は、バッチを唯一のエントリとして、バッチをリストとして返します。DataLoader からテンソルを取得する最良の方法は?

DataLoader現在、numpy 配列をバッチ処理するために使用したい次のような状況があります。

batchはすでに であると予想していtorch.Tensorます。今のところbatch[0]、Tensor を取得するためにバッチにインデックスを付けていますが、これはあまりきれいではなく、コードが読みにくくなっていると感じています。

DataLoaderが と呼ばれるバッチ処理関数を使用することがわかりましたcollate_fn。ただし、設定は、唯一のエントリが Tensor としてのバッチでdata_utils.DataLoader(..., collage_fn=lambda batch: batch[0])あるタプルにリストを変更するだけです。(tensor([ 0.8454, ..., -0.5863]),)

バッチをテンソルにエレガントに変換する方法を見つけるのを手伝ってくれて、私を大いに助けてくれます (バッチ内の単一のエントリにインデックスを付けても問題ないことを教えてくれる場合でも)。

0 投票する
1 に答える
6342 参照

python - データローダーを列挙するときの KeyError

次のように初期化された pytorch データローダーを反復処理しようとしています。

trainDL = torch.utils.data.DataLoader(X_train,batch_size=BATCH_SIZE, shuffle=True, **kwargs)

X_train は、次のような pandas データフレームです。 私のパンダDF

したがって、「列挙」で KeyError を取得しているため、次のステートメントを実行できません。

誰が何が起こっているのか手がかりを持っていますか?

編集:

私が得るエラーは次のとおりです。

0 投票する
1 に答える
16209 参照

python - __getitem__ の idx は PyTorch の DataLoader 内でどのように機能しますか?

現在、PyTorch の DataLoader を使用してデータを処理し、深層学習モデルにフィードしようとしていますが、いくつかの問題に直面しています。

必要なデータは形(minibatch_size=32, rows=100, columns=41)です。私が書いたカスタム クラス内の__getitem__コードDatasetは次のようになります。

このように記述した理由は、DataLoader で形状の入力インスタンスを一度に処理する必要(100, 41)があり、これらの単一インスタンスが 32 個あるためです。

ただし、当初の考えに反してidx、DataLoader が関数に渡す引数がシーケンシャルではないことに気付きました (データが時系列データであるため、これは重要です)。たとえば、値を出力すると、次のようになります。

これは正常な動作ですか?返されたデータ バッチが最初に望んでいたものではないため、この質問を投稿しています。

DataLoader を使用する前にデータを前処理するために使用した元のロジックは次のとおりです。

  1. txtまたはcsvファイルからデータを読み込みます。
  2. データに含まれるバッチの数を計算し、それに応じてデータをスライスします。たとえば、1 つの入力インスタンスが形状(100, 41)であり、これらの 32 が 1 つのミニバッチを形成するため、通常は約 100 程度のバッチになり、それに応じてデータを再形成します。
  3. 1 つの入力は shape(32, 100, 41)です。

DataLoader フック メソッドを他にどのように処理すればよいかわかりません。ヒントやアドバイスは大歓迎です。前もって感謝します。