――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
--Chargez l'image et l'étiquette pickle
dans l'ensemble de données ci-dessus.
--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)
--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).
machine learning one hot
. 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)
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)
--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