ときに動作するニューラルネットワーク、好ましくは、データのバッチを訓練するだけでなく、パラレルおよび加速度のデータをシャッフルする必要があります。この点で、PyTorchは、私たちは、これらの機能を達成するのを助けるデータローダー提供します。
次のようにデータローダー機能が定義されています。
データローダー(データセット、BATCH_SIZE = 1、シャッフル= Falseを、サンプラー= なし、
num_workers = 0、collate_fn = default_collate、pin_memory = Falseを、
drop_last =偽)
データセット:データセット(データセットオブジェクト)をロード
BATCHサイズ:BATCH_SIZE
データならばシャッフル::動揺を
サンプラー:サンプル採取、フォローアップがされます、詳細
num_workers:複数の番号を使用してロード・プロセスのプロセス、0マルチプロセスを使用しないように
collate_fnを:どのようにサンプルデータの複数のは、一般的にすることができ、デフォルトのスプライシングを使用し、バッチにスプライス
ピンのメモリ領域に格納されたデータは、GPUのデータピン・メモリがより速く移動するかどうか:pin_memory
drop_last:データセット内のデータの個数がないかもしれませんTrueにBATCH_SIZE整数倍、drop_lastは不十分なデータ破棄のバッチのうち、よりになります
DEF メイン(): インポートvisdomの インポート時 すなわち = visdom.Visdom() DB =ポケモン(' pokeman '、224 ' 列' ) X、Y =次(ITER(DB)) #1 #の 印刷(' サンプル:' 、 x.shape、y.shape、Y) viz.image(db.denormalize(x)は、勝利 = ' sample_x '、オプト= dictの(タイトル= ' sample_x ' )) ローダ =データローダ(DB、BATCH_SIZE = 32、シャッフル= 真) 以下のために X、Yはでローダ: #各データのデータセットの形を得るためには32セット (db.denormalize(X)viz.imagesを、nrow = 8、=勝つ' BATCH '、OPTS = dictの(タイトル= ' BATCH ' )) viz.text(STR(y.numpy())、勝つ = ' ラベル'、OPTSは= dictの(タイトル= ' BATCH-Y ' )) time.sleep( 10)
データ処理では、時々 、試料は、損傷された画像のような他の問題を、読み取ることができません。_この場合のgetItem異常_意志機能、すなわち、最良の解決策は、エラーサンプルを除去することです
pytorchデータ処理:独自のデータセットを定義します