PyTorch DataLoader からランダムな例を 1 つ取得する 質問する

PyTorch DataLoader からランダムな例を 1 つ取得する 質問する

PyTorchからランダムな例を1つ取得するにはどうすればいいですかDataLoader?

複数の画像とラベルの最小バッチが提供される場合DataLoader、単一のランダムな画像とラベルを取得するにはどうすればよいでしょうか?

ミニバッチごとに 1 つの画像とラベルが必要なのではなく、合計 1 つの例が必要なことに注意してください。

ベストアンサー1

あなたの場合、DataLoader次のようなものです:

test_loader = DataLoader(image_datasets['val'], batch_size=batch_size, shuffle=True)

これはサイズ のバッチを提供しbatch_size、バッチを直接インデックス付けすることで 1 つのランダムな例を選択できます。

for test_images, test_labels in test_loader:  
    sample_image = test_images[0]    # Reshape them according to your needs.
    sample_label = test_labels[0]

代替ソリューション

  1. 使用できますランダムサンプラーランダムサンプルを取得します。

  2. batch_sizeDataLoader で 1 を使用します。

  3. 次のように DataSet から直接サンプルを取得します。

     mnist_test = datasets.MNIST('../MNIST/', train=False, transform=transform)
    

    次に、このデータセットを使用してサンプルを取得します。

     for image, label in mnist_test:
          # do something with image and other attributes
    
  4. (おそらく最高)見るここ:

     inputs, classes = next(iter(dataloader))   
    

おすすめ記事