[PYTHON] Créer un chargeur de jeu de données

introduction

base de données

――Comme mentionné au début, nous nous référons à ce qui suit. - https://github.com/tensorflow/tensorflow/blob/r1.12/tensorflow/contrib/learn/python/learn/datasets/mnist.py

class DataSet():
    """Gestion des ensembles de données."""

    def __init__(self, images, labels):
        self._num_examples = images.shape[0]
        images = images.reshape(images.shape[0], images.shape[1] * images.shape[2])
        images = images.astype(numpy.float32)
        images = numpy.multiply(images, 1.0 / 255.0)
        self._images = images
        self._labels = labels
        self._epochs_completed = 0
        self._index_in_epoch = 0
def dense_to_one_hot(labels_dense, num_classes):
    """Convert class labels from scalars to one-hot vectors."""
    num_labels = labels_dense.shape[0]
    index_offset = numpy.arange(num_labels) * num_classes
    labels_one_hot = numpy.zeros((num_labels, num_classes))
    labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
    return labels_one_hot

Lecture de données Pickle

--Chargez l'image et l'étiquette pickle dans l'ensemble de données ci-dessus.

Lire les données

--Lisez les données d'origine ou les données complétées en fonction du fichier de réglage.

def load_data(one_hot=False, validation_size=0):
    """Configurer le jeu de données.Lire selon py."""

    train_num = AUGMENT_NUM if USE_AUGMENT else 0
    datasets_file = os.path.join(DATASETS_PATH, ','.join(CLASSES), '{}x{}-{}.pickle'.format(IMG_ROWS, IMG_COLS, train_num))

    with open(datasets_file, 'rb') as fin:
        (train_images, train_labels), (test_images, test_labels) = pickle.load(fin)

Une conversion à chaud d'étiquette

--Cette fois, les données d'étiquette lues sont converties en «one_hot» et connectées au processus suivant. --Par exemple, si les étiquettes sont Ensoleillé: 1, Nuageux: 2, Pluie: 3, Ensoleillé: (1, 0, 0), Nuageux: (0, 1, 0), Pluie: (0`` C'est une conversion en une forme comme 0, 1).

    if one_hot:
        num_classes = len(numpy.unique(train_labels))
        train_labels = dense_to_one_hot(train_labels, num_classes)
        test_labels = dense_to_one_hot(test_labels, num_classes)

Classification des jeux de données d'image et d'étiquette

    perm = numpy.arange(train_images.shape[0])
    numpy.random.shuffle(perm)
    train_images = train_images[perm]
    train_labels = train_labels[perm]

    validation_images = train_images[:validation_size]
    validation_labels = train_labels[:validation_size]
    train_images = train_images[validation_size:]
    train_labels = train_labels[validation_size:]

    train = DataSet(train_images, train_labels)
    validation = DataSet(validation_images, validation_labels)
    test = DataSet(test_images, test_labels)

    return Datasets(train=train, validation=validation, test=test)

en conclusion

--Création d'un chargeur de jeu de données. Les données originales ont été modifiées pour lire les données «pickle». Cependant, ces jours-ci, vous pouvez masquer cette zone et la programmer, il n'est donc pas nécessaire de la mettre en œuvre. Je pense que c'est le premier et le dernier. ――La prochaine fois, j'aimerais créer un modèle d'apprentissage.

Recommended Posts

Créer un chargeur de jeu de données
4. Création d'un programme structuré
Création d'outils de grattage
"Création d'un ensemble de données sur le cours de l'action" et "Mise en œuvre de l'AR (1)"
Bloquer le disque RAM de l'appareil Créer un appareil
Création d'un programme de fractionnement de fichiers wav
Étape par étape pour créer un Dockerfile
Créer un arbre déterminé avec scikit-learn
Créer un serveur Flask avec Docker
Créer un tableau simple à l'aide de prettytable
Créer une application Web avec Flask ①
[Python] Mémo de création de l'outil de grattage
Précautions lors de la création d'un générateur Python
Créer un modèle d'apprentissage à l'aide de MNIST
Créer une application Web avec Flask ③
Lors de la création d'une matrice dans une liste
Créer une application Web avec Flask ④
[Python] Chapitre 03-01 graphiques de tortues (création d'une tortue)
Créer un fichier power simple avec Python
Création d'un bot LINE ~ Création, déploiement et lancement ~
Commandes pour créer un nouveau projet django
[Colab] Comment copier un vaste ensemble de données
Remarques sur la création d'outils de mise en forme de texte
[Python] Création d'un graphique de tirage des actions
Segmentation d'image avec CaDIS: un ensemble de données sur la cataracte
Créer un script shell pour écrire un journal
Mémo sur Sphinx Partie 1 (Création d'un projet)
Créer une carte du choléra pour John Snow
Créer un environnement virtuel dans un environnement Anaconda
Créer un environnement de développement pour l'apprentissage automatique