1
torch.utils.data.DataLoader
複数のデータセットを作成して、異なる変換が適用されているデータセットを作成しようとしています。現在のところ、私のコードはおおよそPyTorch DataLoader
d_transforms = [
transforms.RandomHorizontalFlip(),
# Some other transforms...
]
loaders = []
for i in range(len(d_transforms)):
dataset = datasets.MNIST('./data',
train=train,
download=True,
transform=d_transforms[i]
loaders.append(
DataLoader(dataset,
shuffle=True,
pin_memory=True,
num_workers=1)
)
ですが、これは動作しますが、非常に遅いです。ほぼすべての私のコードの時間のが
x, y = next(iter(train_loaders[i]))
のような行に費やされているkernprofショー、私はこれは私が、しようと、自分の労働者、とそれぞれDataLoader
の複数のインスタンスを使用しているという事実によるものであると思われます同じデータファイルを読み込みます。
私の質問は、これを行うためのより良い方法は何ですか?理想的には、torch.utils.data.DataSet
をサブクラス化し、のサンプリング時にを適用したい変換を指定しますが、これは引数を取ることができない__getitem__
のために可能ではありません。
はい、素晴らしいものをお勧めできますか?私が言及したように、より良い方法は私が探しているものです。 – Coolness
私は1つから複数の派生データセットを作成し、それらを一般化しようとしています。 – Coolness
私は自分の仕事の詳細を議論するのではなく、コメントボックスで完全に説明することはできません。私はそれがその質問にどのように関係しているのか分かりません。 – Coolness