Como baixar e usar imagens do conjunto de dados MNIST
O conjunto de dados MNIST é um dos conjuntos de dados mais populares e amplamente utilizados no campo de processamento de imagens e aprendizado de máquina. É uma grande coleção de dígitos manuscritos de 0 a 9, com um total de 70.000 imagens. As imagens são em tons de cinza, com resolução de 28 x 28 pixels. O conjunto de dados já está dividido em conjuntos de treinamento e teste, com 60.000 imagens para treinamento e 10.000 imagens para teste.
download mnist dataset images
O conjunto de dados MNIST é muito útil para comparar e testar vários algoritmos de processamento de imagem e aprendizado de máquina, como classificação, reconhecimento, segmentação, extração de recursos, redução de dimensionalidade, agrupamento etc.
Neste artigo, mostraremos como baixar e usar imagens de conjuntos de dados MNIST em Python. Abordaremos os seguintes tópicos:
Como importar o conjunto de dados do Keras
Como baixar o conjunto de dados usando os comandos curl e gunzip
Como ler e processar o conjunto de dados usando bibliotecas Python
Como plotar algumas imagens dos dígitos usando matplotlib.pyplot
Como exibir a imagem MNIST usando PIL.Image
Ao final deste artigo, você entenderá melhor como trabalhar com imagens de conjuntos de dados MNIST e como aplicá-las em seus próprios projetos.
Como importar imagens do conjunto de dados MNIST do Keras
Keras é uma API de rede neural de alto nível que fornece várias ferramentas e módulos para construir, treinar e avaliar modelos de aprendizado profundo. Uma das características do Keras é que ele fornece acesso fácil a vários conjuntos de dados comuns, incluindo MNIST.
Para importar imagens do conjunto de dados MNIST do Keras, você precisa primeiro importar o módulo mnist de keras.datasets. Em seguida, você pode usar a função load_data() para carregar os conjuntos de treinamento e teste em variáveis separadas.A função retorna duas tuplas: (train_X, train_y) e (test_X, test_y), onde train_X e test_X são arrays numpy de formato (60000, 28, 28) e (10000, 28, 28) respectivamente, contendo os valores de pixel das imagens; e train_y e test_y são matrizes numpy de formato (60000,) e (10000,) respectivamente, contendo os rótulos das imagens.
Aqui está um trecho de código de exemplo que mostra como importar imagens do conjunto de dados MNIST do Keras:
from keras.datasets import mnist #carregando o conjunto de dados (train_X, train_y), (test_X, test_y) = mnist.load_data()
Como baixar imagens do conjunto de dados MNIST usando os comandos Curl e Gunzip
Se preferir baixar as imagens do conjunto de dados MNIST diretamente do site de origem, você pode usar os comandos curl e gunzip em seu terminal ou prompt de comando. Curl é uma ferramenta de linha de comando que permite transferir dados de ou para um servidor usando vários protocolos. Gunzip é uma ferramenta de linha de comando que permite descompactar arquivos compactados por gzip.
O site de origem do conjunto de dados MNIST é [ leCun.com/exdb/mnist/]( onde você pode encontrar quatro arquivos que contêm os conjuntos de imagens e rótulos de treinamento e teste. Os arquivos são compactados pelo gzip, então você precisa usar o gunzip para descompactá-los após baixá-los.
Aqui está um trecho de código de exemplo que mostra como baixar imagens de conjunto de dados MNIST usando os comandos curl e gunzip:
#baixando os arquivos curl -O curl -O curl -O curl -O http:// yann.leCun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz #descompactando os arquivos gunzip train-images-idx3-ubyte.gz gunzip train-labels-idx1-ubyte.gz gunzip t10k-images-idx3-ubyte.gz gunzip t10k-labels-idx1-ubyte.gz
Como ler e processar imagens de conjuntos de dados MNIST usando bibliotecas Python
Depois de baixar ou importar as imagens do conjunto de dados MNIST, você precisa lê-las e processá-las usando as bibliotecas Python. Existem várias maneiras de fazer isso, mas uma das maneiras mais comuns e convenientes é usar a biblioteca idx2numpy. Essa biblioteca permite converter arquivos IDX, que são o formato de imagens de conjuntos de dados MNIST, em matrizes numpy.
Para usar a biblioteca idx2numpy, você precisa primeiro instalá-la usando pip ou conda. Em seguida, você pode importá-lo e usar a função convert_from_file() para ler os arquivos IDX e convertê-los em arrays numpy. A função usa o nome do arquivo como argumento e retorna um array numpy dos dados correspondentes.
Aqui está um trecho de código de exemplo que mostra como ler e processar imagens de conjuntos de dados MNIST usando a biblioteca idx2numpy:
import idx2numpy #lendo os arquivos e convertendo-os em arrays numpy train_X = idx2numpy.convert_from_file('train-images-idx3-ubyte') train_y = idx2numpy.convert_from_file('train-labels-idx1-ubyte') test_X = idx2numpy.convert_from_file('t10k-images-idx3-ubyte') test_y = id x2numpy.convert_from_file('t10k-labels-idx1-ubyte')
Como plotar imagens de conjunto de dados MNIST usando Matplotlib
Matplotlib é uma biblioteca Python que fornece várias funções e métodos para criar e exibir gráficos, tabelas, plotagens e outras visualizações. Um dos recursos do matplotlib é que ele pode plotar imagens de arrays numpy usando a função imshow(). Esta função usa um array numpy como argumento e o exibe como uma imagem.
Para plotar imagens de conjunto de dados MNIST usando matplotlib, você precisa primeiro importar matplotlib.pyplot como plt. Em seguida, você pode usar a função imshow() para plotar qualquer imagem do conjunto de dados passando seu índice como um argumento. Você também pode usar a função title() para adicionar um título ao gráfico e a função show() para exibir o gráfico.
Aqui está um trecho de código de exemplo que mostra como plotar imagens de conjunto de dados MNIST usando matplotlib:
import matplotlib.pyplot as plt #plotando uma imagem do conjunto de treinamento com seu rótulo plt.imshow(train_X[0], cmap='gray') plt.title('Label: ' + str(train_y[0])) plt.show() #plotando uma imagem do conjunto de teste com seu rótulo plt.imshow(test_X[0], cmap='gray') plt.title('Label: ' + str(test_y [0])) plt.show()
Como exibir imagem MNIST usando PIL.Image
PIL (Python Imaging Library) é uma biblioteca Python que fornece várias funções e métodos para manipular e processar imagens. Um dos recursos do PIL é que ele pode exibir imagens de arrays numpy usando o módulo Image. Este módulo fornece uma classe chamada Image que representa um objeto de imagem.
Para exibir a imagem MNIST usando PIL.Image, você precisa primeiro importar a imagem do PIL. Em seguida, você pode usar a função fromarray() para criar um objeto de imagem a partir de um array numpy. A função usa um array numpy como argumento e retorna um objeto de imagem da mesma forma e modo. Você também pode usar o método show() para exibir o objeto de imagem.
Aqui está um trecho de código de exemplo que mostra como exibir a imagem MNIST usando PIL.Image:
from PIL import Image #criando um objeto de imagem a partir de um array numpy img = Image.fromarray(train_X[0]) # #exibindo o objeto de imagem img.show()
Conclusão
Neste artigo, aprendemos como baixar e usar imagens de conjunto de dados MNIST em Python. Cobrimos os seguintes tópicos:
Como importar o conjunto de dados do Keras
Como baixar o conjunto de dados usando os comandos curl e gunzip
Como ler e processar o conjunto de dados usando bibliotecas Python
Como plotar algumas imagens dos dígitos usando matplotlib.pyplot
Como exibir a imagem MNIST usando PIL.Image
O conjunto de dados MNIST é um ótimo recurso para aprender e praticar habilidades de processamento de imagem e aprendizado de máquina. Ele fornece um problema simples, mas desafiador para resolver, e pode ser aplicado a vários algoritmos e modelos.Esperamos que este artigo tenha ajudado você a entender como trabalhar com imagens de conjunto de dados MNIST e como usá-las em seus próprios projetos.
Se você quiser saber mais sobre o conjunto de dados MNIST e suas aplicações, recomendamos que consulte os seguintes recursos:
[O Banco de Dados MNIST de Dígitos Manuscritos](
[Tutorial de conjunto de dados MNIST com TensorFlow e Keras](
[Tutorial de conjunto de dados MNIST com PyTorch](
[Tutorial de conjunto de dados MNIST com Scikit-Learn](
perguntas frequentes
Qual é o tamanho e o formato das imagens do conjunto de dados MNIST?
As imagens do conjunto de dados MNIST são em escala de cinza, com uma resolução de 28 x 28 pixels. Cada pixel tem um valor entre 0 e 255, representando a intensidade da cor. As imagens são armazenadas em arquivos IDX, que são arquivos binários que contêm dados em um formato específico.
Quantas imagens existem nos conjuntos de treinamento e teste?
O conjunto de dados MNIST possui um total de 70.000 imagens, divididas em conjuntos de treinamento e teste. O conjunto de treinamento possui 60.000 imagens e o conjunto de teste possui 10.000 imagens. As imagens são embaralhadas e balanceadas aleatoriamente, o que significa que cada dígito tem um número igual de imagens em cada conjunto.
Como posso dividir o conjunto de dados em diferentes subconjuntos para validação ou validação cruzada?
Uma maneira de dividir o conjunto de dados em diferentes subconjuntos é usar a função train_test_split() de sklearn.model_selection. Esta função permite dividir um array ou uma lista em dois subconjuntos aleatórios, com uma proporção especificada. Por exemplo, você pode usar esta função para dividir o conjunto de treinamento em um subconjunto de treinamento e um subconjunto de validação, com uma proporção de 80:20.
from sklearn.model_selection import train_test_split #dividindo o conjunto de treinamento em um subconjunto de treinamento e um subconjunto de validação train_X_sub, val_X_sub, train_y_sub, val_y_sub = train_test_split(train_X, train_y, test_size=0.2)
Como posso aplicar diferentes transformações ou aumentos às imagens?
Uma maneira de aplicar diferentes transformações ou aumentos às imagens é usar a classe ImageDataGenerator de keras.preprocessing.image. Esta classe permite criar um gerador de imagem que pode executar várias operações nas imagens, como rotação, zoom, deslocamento, inversão, etc. Por exemplo, você pode usar esta classe para criar um gerador de imagem que pode girar as imagens em 15 graus.
from keras.preprocessing.image import ImageDataGenerator #criando um gerador de imagens que pode girar as imagens em 15 graus datagen = ImageDataGenerator(rotation_range=15) #aplicando o gerador de imagens ao conjunto de treinamento train_X_aug = datagen.flow(train_X)
Como posso usar imagens de conjunto de dados MNIST para treinar uma rede neural ou um modelo de aprendizado de máquina?
Uma maneira de usar imagens de conjunto de dados MNIST para treinar uma rede neural ou um modelo de aprendizado de máquina é usar o método fit() de keras.models ou sklearn.linear_model. Este método permite treinar um modelo em um determinado conjunto de entradas e saídas, com vários parâmetros e opções. Por exemplo, você pode usar esse método para treinar um modelo de regressão logística no conjunto de treinamento.
from sklearn.linear_model import LogisticRegression #criando um modelo de regressão logística model = LogisticRegression() #treinando o modelo no conjunto de treinamento model.fit(train_X.reshape(-1, 28*28), train_y) 0517a86e26
Comentarios