es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo reducir los ejemplos de prueba en `torch.utils.data.DataLoader`

Quiero cargar los datos de MNIST usando:

test_dataset = datasets.MNIST(root='./mnist_data/', train=False, transform=transforms.ToTensor(), download=False)

test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=1, shuffle=False)

Sin embargo, este código cargará los 10000 ejemplos de prueba de imágenes escritas a mano. ¿Existe alguna oportunidad de tener test_loader exactamente en el mismo tipo y limitar su carga solo a 100?

Intenté intuitivamente hacer:

test_loader.dataset = test_loader.dataset[0:99]

Pero obtuve el siguiente error:

ValueError: solo los tensores de un solo elemento se pueden convertir a escalares de Python

Esto se debe a que Python no entiende el objeto test_loader.dataset[0:99].

¿Podría ayudarme a resolver este problema, por favor?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para cargar solo 100 ejemplos de prueba de puntos de datos escritos a mano utilizando el test_loader, puedes modificar el código de creación de test_dataset de la siguiente manera:

    test_dataset = datasets.MNIST(root='./mnist_data/', train=False, transform=transforms.ToTensor(), download=False)
    test_dataset.data = test_dataset.data[:100]
    test_dataset.targets = test_dataset.targets[:100]
    
    test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=1, shuffle=False)
    

    En el código anterior, creas el test_dataset de la misma manera. Sin embargo, después de eso, cortas los tensores data y targets para tener solo los primeros 100 ejemplos. Luego, creas el test_loader utilizando el test_dataset modificado.

    Ahora, cuando iteres sobre el test_loader, solo se cargarán los primeros 100 ejemplos en lugar de los 10000.

Comments are closed.