Como baixar e usar o conjunto de dados MNIST
O MNIST dataset é um grande banco de dados de dígitos manuscritos que é comumente usado para treinar vários sistemas de processamento de imagem e modelos de aprendizado de máquina. Contém 60,000 imagens de treinamento e 10,000 testando imagens de dígitos de 0 para 9. As imagens são em tons de cinza e têm um tamanho de 28x28 píxeis.
download mnist dataset
Download File: https://urlcod.com/2vS1cA
Neste artigo, mostrarei como baixar o conjunto de dados MNIST de diferentes fontes, como carregá-lo no Python usando diferentes bibliotecas e como plotar alguns exemplos dos dígitos usando matplotlib. Também darei a você alguns aplicativos e recursos para usar o conjunto de dados MNIST para seus próprios projetos.
Como baixar o conjunto de dados MNIST
Existem várias maneiras de baixar o conjunto de dados MNIST, dependendo de suas preferências e necessidades. Aqui estão alguns deles:
De Keras
Keras é uma API de rede neural de alto nível que oferece suporte a vários back-ends, incluindo TensorFlow, Theano e CNTK. Ele fornece uma maneira simples de baixar e carregar conjuntos de dados comuns, incluindo o conjunto de dados MNIST.
Para baixar o conjunto de dados MNIST do Keras, você pode usar o seguinte código:
from keras.datasets import mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Isso fará o download de quatro arquivos: train-images-idx3-ubyte.gz, train-labels- idx1-ubyte.gz, t10k-images-idx3-ubyte.gz, e t10k-labels-idx1-ubyte.gz de e guarde-os no /.keras/datasets pasta. Ele também os carregará em quatro matrizes NumPy: train_images, train_labels, test_images, e test_labels. Cada imagem é uma matriz de 28x28 de inteiros entre 0 e 255, representando os valores de pixel. Cada rótulo é um número inteiro entre 0 e 9, representando a classe de dígitos.
Dos conjuntos de dados do TensorFlow
O TensorFlow Datasets é uma coleção de conjuntos de dados prontos para uso com o TensorFlow. Ele lida com o download e preparação dos dados e construção de um tf.data.Dataset objeto.Você também pode acessar conjuntos de dados de outras bibliotecas, como scikit-learn, usando conjuntos de dados do TensorFlow.
Para baixar o conjunto de dados MNIST dos conjuntos de dados do TensorFlow, você pode usar o seguinte código:
importar tensorflow_datasets como tfds mnist_data = tfds.load('mnist') train_data, test_data = mnist_data['train'], mnist_data['test']
Isso fará o download dos mesmos quatro arquivos de antes do site do MNIST e os armazenará no /tensorflow_datasets/mnist/3.0.1 pasta. Ele também irá carregá-los em dois tf.data.Dataset objetos: train_data e dados de teste. Cada elemento do conjunto de dados é um dicionário com duas chaves: 'imagem' e 'rótulo'. A imagem é um tensor 28x28x1 de inteiros entre 0 e 255, representando os valores de pixel. O rótulo é um tensor escalar de inteiros entre 0 e 9, representando a classe de dígitos.
Dos conjuntos de dados abertos do Azure
O Azure Open Datasets é um serviço que fornece acesso a dados abertos selecionados de vários domínios, como clima, censo, saúde e educação. Você pode baixar os dados como arquivos ou acessá-los por meio do Azure Machine Learning ou do Azure Databricks.
Para baixar o conjunto de dados MNIST do Azure Open Datasets, você pode usar o seguinte código:
from azureml.opendatasets import MNIST mnist_file_dataset = MNIST.get_file_dataset() mnist_file_dataset.download(target_path='.', overwrite=True)
Isso fará o download de quatro arquivos: Trem-28x28.csv, Train-label.csv, Test-28x28.csv, e Test-label.csv do site Azure Open Datasets e armazene-os na pasta atual. Cada arquivo é um arquivo de valores separados por vírgula (CSV) que contém os valores de pixel ou os rótulos das imagens. Cada linha representa uma imagem ou um rótulo e cada coluna representa um pixel ou uma classe.
Como carregar e plotar o conjunto de dados MNIST
Depois de baixar o conjunto de dados MNIST, você pode carregá-lo no Python usando diferentes bibliotecas, dependendo de como deseja manipular e analisar os dados. aqui estão alguns exemplos:
Usando Keras
Se você baixou o conjunto de dados MNIST usando Keras, você já o carregou em quatro arrays NumPy: train_images, train_labels, test_images, e test_labels. Você pode usar essas matrizes para executar várias operações nos dados, como remodelar, normalizar ou aumentar.
Para plotar alguns exemplos dos dígitos usando matplotlib, você pode usar o seguinte código:
import matplotlib.pyplot as plt %matplotlib inline # Selecione 16 imagens aleatórias do conjunto de treinamento indices = np.random.choice(range(len(train_images)), 16) # Crie uma grade 4x4 de subplots fig, axes = plt.subplots(4, 4, figsize=(8, 8)) # Percorra os índices e plote cada imagem com seu rótulo para i, ax in zip( índices, axes.flat): image = train_images[i] label = train_labels[i] ax.imshow(image, cmap='gray') ax.set_title(f'Label: label') ax.axis('off') # Mostra o gráfico plt.show()
Isso produzirá um gráfico como este:
Usando conjuntos de dados do TensorFlow
Se você baixou o conjunto de dados MNIST usando conjuntos de dados do TensorFlow, você o carregou em dois tf.data.Dataset objetos: train_data e dados de teste. Você pode usar esses objetos para executar várias operações nos dados, como lote, embaralhamento ou armazenamento em cache.
Para plotar alguns exemplos dos dígitos usando matplotlib, você pode usar o seguinte código:
import matplotlib.pyplot as plt %matplotlib inline # Pegue 16 elementos aleatórios do conjunto de dados de treinamento sample_data = train_data.take(16) # Crie uma grade 4x4 de subplots fig, axes = plt.subplots(4, 4, figsize=(8, 8)) # Faça um loop sobre os dados de amostra e plote cada imagem com seu rótulo para (image, label), ax in zip(sample_data, axes.flat ): image = image.numpy().squeeze() label = label.numpy() ax.imshow(image, cmap='gray') ax.set_title(f'Label: label') ax.axis('off') # Mostra o gráfico plt.show()
Isso produzirá um gráfico semelhante ao anterior.
Usando o Aprendizado de Máquina do Azure
Se você baixou o conjunto de dados MNIST usando Azure Open Datasets, você o armazenou como quatro arquivos CSV: Trem-28x28.csv, Train-label.csv, Test-28x28.csv, e Test-label.csv. Você pode usar o Azure Machine Learning para carregar esses arquivos em Pandas DataFrames e executar várias operações nos dados, como mesclagem, divisão ou dimensionamento.
Para plotar alguns exemplos dos dígitos usando matplotlib, você pode usar o seguinte código:
import matplotlib.pyplot as plt %matplotlib inline import pandas as pd # Carrega as imagens e rótulos de treinamento em DataFrames pandas train_images_df = pd.read_csv('Train-28x28.csv', header=None) train_labels_df = pd.read_csv('Train-label.csv', header=None) # Selecione 16 linhas aleatórias dos dados Frames indices = train_images_df.sample(16).index images = train_images_df.loc[indices] labels = train_labels_df.loc[indices] # Crie uma grade 4x4 de subplots fig, axes = plt.subplots(4, 4, figsize=(8, 8)) # Percorra as imagens e labels e plote cada imagem com seu label para (image, label), ax in zip(zip(images.values, labels.values), axes.flat): image = image.reshape(28, 28) label = label[0] ax.imshow(image, cmap='gray') ax.set_title(f'Label: label') ax.axis('off') # Mostra o gráfico plt.show()
Isso produzirá um gráfico semelhante ao anterior.
Aplicativos e recursos para usar o conjunto de dados MNIST
O conjunto de dados MNIST é um dos conjuntos de dados mais populares e amplamente utilizados em aprendizado de máquina. Ele tem sido usado para vários aplicativos e tarefas, como classificação de imagens, geração de imagens, segmentação de imagens e muito mais. aqui estão alguns exemplos:
Classificação de imagem
A classificação de imagens é a tarefa de atribuir um rótulo a uma imagem com base em seu conteúdo. Por exemplo, dada uma imagem de um dígito manuscrito, queremos classificá-la como uma das 10 classes de 0 a 9. O conjunto de dados MNIST é uma referência para modelos de classificação de imagens e muitos algoritmos foram desenvolvidos e testados nele. Alguns dos melhores modelos podem atingir mais de 99% de precisão no conjunto de teste.
Para aprender a construir um modelo de classificação de imagem usando Keras e TensorFlow no conjunto de dados MNIST, você pode seguir este .
Geração de imagem
A geração de imagens é a tarefa de criar novas imagens com base em alguma entrada ou condição. Por exemplo, dado o rótulo de um dígito, queremos gerar uma imagem de um dígito manuscrito que corresponda a esse rótulo. O conjunto de dados MNIST é uma fonte de inspiração para modelos de geração de imagens, e muitas técnicas foram aplicadas e aprimoradas nele. Alguns dos modelos mais impressionantes podem gerar imagens realistas e diversificadas de dígitos que parecem ter sido desenhados por humanos.
Para aprender a construir um modelo de geração de imagem usando redes adversárias generativas (GANs) no conjunto de dados MNIST, você pode seguir este .
Segmentação de imagem
A segmentação de imagens é a tarefa de dividir uma imagem em regiões ou segmentos com base em alguns critérios. Por exemplo, dada a imagem de um dígito manuscrito, queremos separar o primeiro plano (o dígito) do fundo (o papel). O conjunto de dados MNIST é um desafio para modelos de segmentação de imagens, pois os dígitos variam em forma, tamanho, orientação e estilo. Alguns dos melhores modelos podem alcançar alta exatidão e precisão na tarefa de segmentação.
Para aprender a construir um modelo de segmentação de imagem usando redes neurais convolucionais (CNNs) no conjunto de dados MNIST, você pode seguir este .
Conclusão
Neste artigo, aprendemos como baixar e usar o conjunto de dados MNIST para vários aplicativos de aprendizado de máquina. Vimos como baixar o conjunto de dados de diferentes fontes, como carregá-lo no Python usando diferentes bibliotecas e como plotar alguns exemplos dos dígitos usando matplotlib. Também exploramos alguns aplicativos e recursos para usar o conjunto de dados MNIST para classificação, geração e segmentação de imagens.
O conjunto de dados MNIST é uma ótima maneira de iniciar sua jornada de aprendizado de máquina e experimentar diferentes modelos e técnicas.Também é uma ferramenta útil para avaliar seu desempenho e comparar seus resultados com outros. No entanto, não é o único conjunto de dados disponível e você também deve tentar outros conjuntos de dados mais complexos, diversos ou realistas. Você pode encontrar muitos outros conjuntos de dados em .
perguntas frequentes
Aqui estão algumas perguntas frequentes sobre o conjunto de dados MNIST e suas respostas:
Qual é a melhor maneira de baixar o conjunto de dados MNIST?
Não há uma resposta definitiva para essa pergunta, pois depende de suas preferências e necessidades. No entanto, alguns fatores que você pode considerar são:
O tamanho dos arquivos: os métodos Keras e TensorFlow Datasets baixam arquivos compactados menores que o método Azure Open Datasets, que baixa arquivos CSV maiores.
O formato dos dados: os métodos Keras e TensorFlow Datasets carregam os dados em matrizes NumPy ou objetos tf.data.Dataset que são fáceis de manipular e inserir em modelos de aprendizado de máquina. O método Azure Open Datasets carrega os dados em arquivos CSV que precisam ser convertidos em outros formatos.
A disponibilidade dos dados: os métodos Keras e TensorFlow Datasets requerem uma conexão com a Internet para baixar os dados, enquanto o método Azure Open Datasets permite baixar os dados uma vez e usá-los offline.
Você pode escolher o método que melhor se adapta à sua situação e objetivos.
Quais são alguns desafios ou limitações do uso do conjunto de dados MNIST?
Alguns dos desafios ou limitações do uso do conjunto de dados MNIST são:
A simplicidade dos dados: O conjunto de dados MNIST é relativamente simples e fácil de trabalhar, mas pode não refletir a complexidade e diversidade dos dados do mundo real. Por exemplo, as imagens são em tons de cinza, de baixa resolução, centralizadas e normalizadas, o que pode não ser o caso de outras imagens.
O overfitting dos modelos: O conjunto de dados MNIST é muito popular e amplamente utilizado, mas também pode levar ao overfitting dos modelos.O overfitting ocorre quando um modelo aprende muito bem a partir de um conjunto de dados específico e falha ao generalizar para dados novos ou não vistos. Para evitar o overfitting, você deve usar técnicas de regularização, como dropout ou decaimento de peso, ou usar outros conjuntos de dados para validação ou teste.
A saturação do desempenho: o conjunto de dados MNIST é uma referência para modelos de aprendizado de máquina, mas também pode levar à saturação do desempenho. A saturação ocorre quando um modelo atinge um alto nível de exatidão ou precisão que não pode ser melhorado por ajustes ou otimização do modelo. Para superar a saturação, você deve tentar tarefas mais desafiadoras ou novas ou usar modelos mais avançados ou criativos.
Quais são algumas alternativas ou extensões do conjunto de dados MNIST?
Algumas das alternativas ou extensões do conjunto de dados MNIST são:
O conjunto de dados Fashion-MNIST: Este é um conjunto de dados de imagens em escala de cinza 28x28 de 10 categorias de moda, como camisetas, calças ou tênis. Possui 60.000 imagens de treinamento e 10.000 imagens de teste. Destina-se a ser um substituto para o conjunto de dados MNIST que é mais desafiador e realista.
O conjunto de dados EMNIST: Este é um conjunto de dados de imagens em escala de cinza 28x28 de caracteres manuscritos de 62 classes, incluindo dígitos, letras (maiúsculas e minúsculas) e símbolos. Possui 814.255 imagens de treinamento e 130.600 imagens de teste. É derivado do conjunto de dados NIST, que é uma coleção maior e mais diversificada de caracteres manuscritos.
O conjunto de dados KMNIST: Este é um conjunto de dados de imagens em escala de cinza 28x28 de caracteres japoneses manuscritos de 10 classes, representando o silabário hiragana. Possui 60.000 imagens de treinamento e 10.000 imagens de teste. Ele foi projetado para ser uma alternativa mais desafiadora e culturalmente relevante ao conjunto de dados MNIST.
Como posso melhorar meu desempenho no conjunto de dados MNIST?
Algumas das maneiras de melhorar seu desempenho no conjunto de dados MNIST são:
Pré-processamento dos dados: você pode aplicar algumas técnicas de pré-processamento aos dados, como redimensionar, recortar, girar, inverter ou adicionar ruído. Isso pode ajudar a reduzir a variância e aumentar a robustez dos modelos.
Aumentando os dados: você pode gerar mais dados aplicando algumas transformações aos dados existentes, como deslocamento, dimensionamento, cisalhamento ou distorção. Isso pode ajudar a aumentar a diversidade e a complexidade dos dados e evitar o overfitting.
Ajustando os hiperparâmetros: Você pode otimizar alguns hiperparâmetros dos modelos, como a taxa de aprendizado, o número de épocas, o tamanho do lote ou a taxa de abandono. Isso pode ajudar a encontrar a melhor configuração e compensação para os modelos.
Usando métodos de conjunto: você pode combinar vários modelos ou previsões usando alguns métodos, como média, votação ou empilhamento. Isso pode ajudar a melhorar a precisão e a estabilidade dos modelos.
Onde posso encontrar mais informações ou tutoriais sobre como usar o conjunto de dados MNIST?
Algumas das fontes ou referências para aprender mais sobre como usar o conjunto de dados MNIST são:
O : Este é o site oficial do conjunto de dados MNIST, onde você pode encontrar o artigo original, os arquivos e alguns resultados e links.
O : Esta é a documentação do Keras, onde você pode encontrar alguns exemplos e guias sobre como usar o Keras para baixar e carregar o conjunto de dados MNIST e construir vários modelos nele.
O : esta é a documentação dos conjuntos de dados do TensorFlow, onde você pode encontrar alguns exemplos e guias sobre como usar conjuntos de dados do TensorFlow para baixar e carregar o conjunto de dados MNIST e criar vários modelos nele.
O : esta é a documentação dos conjuntos de dados abertos do Azure, onde você pode encontrar alguns exemplos e guias sobre como usar conjuntos de dados abertos do Azure para baixar e carregar o conjunto de dados MNIST e criar vários modelos nele.
0517a86e26
Comments