El conjunto de datos que viene con pytorch lo proporcionan dos API de nivel superior, que son torchvision
ytorchtext
entre ellos:
torchvision
Proporciona API y datos relacionados con el procesamiento de datos de imágenes.- Ubicación de los datos:
torchvision.datasets
por ejemplo:torchvision.datasets.MNIST
(datos de imágenes digitales escritos a mano)
- Ubicación de los datos:
torchtext
Proporciona API y datos relacionados con el procesamiento de datos de texto.- Ubicación de los datos:
torchtext.datasets
por ejemplo:torchtext.datasets.IMDB(电影
datos de texto de comentario)
- Ubicación de los datos:
Tomemos los números escritos a mano de Mnist como ejemplo para ver cómo pytorch carga su propio conjunto de datos
El método de uso es el mismo que antes:
- Prepara la instancia del conjunto de datos
- Entregue el conjunto de datos al cargador de datos para interrumpir el pedido y formar un lote
4.1 torchversion.datasets
torchversoin.datasets
Las clases de conjuntos de datos en (por ejemplo torchvision.datasets.MNIST
) se heredan deDataset
Medios: torchvision.datasets.MNIST
una instancia que se puede obtener Dataset
instanciando directamente
Pero los parámetros en la API MNIST deben tenerse en cuenta:
torchvision.datasets.MNIST(root='/files/', train=True, download=True, transform=)
root
El parámetro indica dónde se almacenan los datos.train:
El tipo bool indica si se deben utilizar los datos del conjunto de entrenamiento o los datos del conjunto de prueba.download:
tipo bool, que indica si necesita descargar datos al directorio raíztransform:
Función de procesamiento de imágenes realizada
4.2 Introducción al conjunto de datos MNIST
La dirección original del conjunto de datos:http://yann.lecun.com/exdb/mnist/
MNIST es Yann LeCun
un conjunto de datos de reconocimiento de imágenes gratuito proporcionado por et al., Que incluye 60.000 muestras de entrenamiento y 10.000 muestras de prueba. El tamaño de la imagen se ha estandarizado. Todas son imágenes en blanco y negro con un tamaño de28X28
Ejecute el código, descargue los datos, observe el tipo de datos:
import torchvision
dataset = torchvision.datasets.MNIST(root="./data",train=True,download=True,transform=None)
print(dataset[0])
Los datos descargados son los siguientes:
La salida del código es la siguiente:
Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
Processing...
Done!
(<PIL.Image.Image image mode=L size=28x28 at 0x18D303B9C18>, tensor(5))
Se pueden devolver dos datos del conjunto de datos, que se pueden adivinar como los datos y el valor objetivo de la imagen.
El valor de retorno 0 es de tipo Image, que se puede abrir llamando al método show () y se encuentra escrito a mano con el número 5.
import torchvision
dataset = torchvision.datasets.MNIST(root="./data",train=True,download=True,transform=None)
print(dataset[0])
img = dataset[0][0]
img.show() #打开图片
Las imágenes son las siguientes:
Se puede ver en lo anterior: el valor de retorno es (图片,目标值)
, este resultado también se puede obtener observando el código fuente