2017-12-08 24 views
1

私は、pytorchで簡単なネットワークを訓練するためにiris-datasetを使用します。pytorchデータローダ複数の反復

trainset = iris.Iris(train=True) 
trainloader = torch.utils.data.DataLoader(trainset, batch_size=150, 
              shuffle=True, num_workers=2) 

dataiter = iter(trainloader) 

データセット自体は150のデータ点を持っており、なぜなら私の質問は今ある150

のバッチサイズの一回データセット全体にわたるpytorchのデータローダーを反復処理の強行tは、一般的にどのような方法があります一度反復処理を行うと、データセットのデータを繰り返すようにデータローダーに指示しますか?

thnaks

更新

は、それが だけでデータローダーのサブクラスを作成し、自分の__next__()

+0

PyTorch [基本チュートリアル](http://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html) – jdhao

+0

を読んだことはありますか?もちろん、私の質問とは何が関係していますか? –

+0

このチュートリアルでは、ここで求めている内容を正確に示しています。 – jdhao

答えて

1

最も簡単なオプションは、単に、ネストされたループを使用することで実装:)走っました:

for i in range(10): 
    for batch in trainloader: 
     do_something(batch) 

もう1つのオプションは、itertools.cycle、おそらくitertools.takeとの組み合わせです。

もちろん、データセット全体と等しいバッチサイズのDataLoaderを使用するのは少し珍しいことです。 trainloader上でiter()を呼び出す必要はありません。