Load_data self-made pour exécuter l'exemple de code Python MNIST sur votre propre ensemble de données

introduction

Lorsque vous commencez à vous intéresser à l'apprentissage en profondeur et à l'IA et que vous essayez de déplacer l'exemple de code, de nombreux exemples utilisant un ensemble de données appelé MNIST apparaissent. MNIST est un ensemble de données de caractères manuscrits classés par des étiquettes de 0 à 9 et est une image en échelle de gris avec une résolution de 28x28.

L'exemple de code lui-même peut être exécuté tant que l'environnement peut être généré. Je veux utiliser l'ensemble de données d'origine que j'ai créé moi-même, et quand je regarde le code MNIST, la création de l'ensemble de données est presque terminée avec la ligne suivante.

(x_train, y_train), (x_test, y_test) = mnist.load_data()

Créer soudainement votre propre ensemble de données à partir d'ici est un obstacle très important. Donc, dans cet article, au lieu de mnist.load_data, nous allons implémenter une fonction pour créer votre propre jeu de données au format mnist.

mnist.load_data() Les spécifications MNIST sont également introduites dans la documentation officielle. https://keras.io/ja/datasets/

L'utilisation est la même que celle de l'exemple ci-dessus. x_train, y_train stocke les données d'entraînement et les étiquettes, x_test et y_test stockent également un ensemble de données de vérification.

En ce qui concerne les données d'entraînement, cet article est très facile à comprendre, je vais donc le partager. Division des données de formation au machine learning et apprentissage / prédiction / vérification

Load_data () fait soi-même

Préparatifs pour la gestion des load_data que je fais cette fois -Enregistrer les images séparément pour chaque dossier Seulement ça!

Voici une liste des importations et du code source.

import.txt


from PIL import Image
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import os, glob

my_load_data().py


def my_load_data(folder_str, size):
    print('load_dataset...')
    folders = folder_str.split('__')
    X = []
    Y = []
    for index, fol_name in enumerate(folders):
        files = glob.glob(fol_name + '/*.jpg')
        for file in files:
            image = Image.open(file)
            image = image.resize((size, size))
            image = image.convert('L')
            data = np.asarray(image)
            X.append(data)
            Y.append(index)
    X = np.array(X)
    Y = np.array(Y)
    oh_encoder = OneHotEncoder(categories='auto', sparse=False)
    onehot = oh_encoder.fit_transform(pd.DataFrame(Y))
    X_train, X_test, y_train, y_test = train_test_split(X, onehot, test_size=0.2)
    return X_train, X_test, y_train, y_test

L'argument formel folder_str spécifie le dossier dans lequel l'image est divisée. Lorsque vous attachez une étiquette, plusieurs dossiers sont nécessaires, spécifiez donc les noms de dossier séparés par «__». L'exemple de code a une extension de jpg, mais vous pouvez la modifier. la taille est la résolution. Puisque MNIST est 28x28, spécifiez 28. L'étiquette semble être très chaude, je vais donc la convertir pour le moment. C'est la fonction principale lors de l'utilisation de la fonction ci-dessus.

sample.py


import argparse

def main():
    parser = argparse.ArgumentParser(description='sample')
    parser.add_argument('--folder', '-i')
    parser.add_argument('--size', '-s', type=int, default=28)
    args = parser.parse_args()
    X_train, X_test, y_train, y_test = my_load_data(args.folder, args.size)

    #Vérification
    print('X_train',X_train)
    print('y_train',y_train)

Exemple de commande d'exécution

python sample.py --folder f1__f2__f3 -s 28

f1, f2 et f3 supposent le dossier contenant les images dans le répertoire courant.

en conclusion

Cette fois, j'ai créé my_load_data afin que je puisse essayer MNIST load_data avec mes propres données. Nous espérons que vous apprécierez de déplacer l'échantillon MNIST. Si vous rencontrez des problèmes avec l'opération ou si vous avez des questions, n'hésitez pas à commenter.

En écrivant cet article, j'ai emprunté la sagesse de divers ancêtres. Je vais l'écrire à la fin. Merci pour la lecture. Si vous aimez LGTM, s'il vous plaît!

référence

[Comment convertir les données d'image au format numpy](https://newtechnologylifestyle.net/%E7%94%BB%E5%83%8F%E3%83%87%E3%83%BC%E3%82%BF % E3% 81% 8B% E3% 82% 89 numpy% E5% BD% A2% E5% BC% 8F% E3% 81% AB% E5% A4% 89% E6% 8F% 9B% E3% 81% 99% E3 % 82% 8B% E6% 96% B9% E6% B3% 95 /)

Comprendre la détection d'anomalies d'image Keras VAE

Reproduction d'image avec encodeur automatique à convolution, suppression du bruit, segmentation

Recommended Posts

Load_data self-made pour exécuter l'exemple de code Python MNIST sur votre propre ensemble de données
[Python] Enregistrez votre propre bibliothèque dans PyPI
Exécutez le code Python sur A2019 Community Edition
Créez des raccourcis pour exécuter des fichiers Python sur le terminal avec VScode
Mettez MicroPython sur Windows pour exécuter ESP32 sur Python
Créer un ensemble de données en échantillonnant au hasard les données MNIST
Exécutez Python sur Apache pour afficher les données InfluxDB
Mémo pour créer votre propre Box avec le Python de Pepper
[Introduction à l'application Udemy Python3 +] 66. Création de votre propre exception
Prenez votre propre utilisation maximale de la mémoire sous Linux et Python
Essayez d'améliorer votre propre quiz d'introduction avec Python
[Road to Intermediate Python] Définissez dans votre propre classe
Réécrire le code Python2 en Python3 (2to3)
Explication détaillée Comment exécuter l'exemple de code de UNIX Programming 3rd Edition sur Mac
Exemple pour mettre l'application Web Python Flask sur Azure App Service (Web App)
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Exécutez l'exemple de code python BNO055 avec I2C (Raspberry Pi 3B)
Je veux pouvoir exécuter Python avec VS Code
Envoyer des notifications push aux applications iOS avec Python2 (avec un exemple de code)
Exécutez le code de sortie sur le serveur Web local en tant que "A, faisant semblant d'être B" en python
Exécutez Openpose sur Python (Windows)
Exécutez Tensorflow 2.x sur Python 3.7
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Exécutez le CGI de Python sur CORESERVER
Exécutez la commande unix sur python
Comment exécuter Notepad ++ Python
[Python] Exemple de code pour la grammaire Python
Convertir le code python 3.x en python 2.x
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Comment écrire du code pour accéder à python dashDB sur Bluemix ou local
Essayez de vous connecter automatiquement à Netflix en utilisant python sur votre PC