TensorFlow - Keras

Keras est une bibliothèque Python compacte, facile à apprendre et de haut niveau exécutée sur le framework TensorFlow. Il est conçu en mettant l'accent sur la compréhension des techniques d'apprentissage en profondeur, telles que la création de couches pour les réseaux de neurones en maintenant les concepts de formes et de détails mathématiques. La création de freamework peut être des deux types suivants -

  • API séquentielle
  • API fonctionnelle

Considérez les huit étapes suivantes pour créer un modèle d'apprentissage en profondeur dans Keras -

  • Chargement des données
  • Prétraitez les données chargées
  • Définition du modèle
  • Compiler le modèle
  • Ajuster le modèle spécifié
  • Évaluer
  • Faites les prédictions requises
  • Enregistrer le modèle

Nous allons utiliser Jupyter Notebook pour l'exécution et l'affichage de la sortie comme indiqué ci-dessous -

Step 1 - Le chargement des données et le prétraitement des données chargées sont d'abord mis en œuvre pour exécuter le modèle d'apprentissage en profondeur.

import warnings
warnings.filterwarnings('ignore')

import numpy as np
np.random.seed(123) # for reproducibility

from keras.models import Sequential
from keras.layers import Flatten, MaxPool2D, Conv2D, Dense, Reshape, Dropout
from keras.utils import np_utils
Using TensorFlow backend.
from keras.datasets import mnist

# Load pre-shuffled MNIST data into train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)

Cette étape peut être définie comme «Importer des bibliothèques et des modules», ce qui signifie que toutes les bibliothèques et modules sont importés en tant qu'étape initiale.

Step 2 - Dans cette étape, nous définirons l'architecture du modèle -

model = Sequential()
model.add(Conv2D(32, 3, 3, activation = 'relu', input_shape = (28,28,1)))
model.add(Conv2D(32, 3, 3, activation = 'relu'))
model.add(MaxPool2D(pool_size = (2,2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation = 'softmax'))

Step 3 - Compilons maintenant le modèle spécifié -

model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])

Step 4 - Nous allons maintenant ajuster le modèle en utilisant les données d'entraînement -

model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)

La sortie des itérations créées est la suivante -

Epoch 1/10 60000/60000 [==============================] - 65s - 
loss: 0.2124 - 
acc: 0.9345 
Epoch 2/10 60000/60000 [==============================] - 62s - 
loss: 0.0893 - 
acc: 0.9740 
Epoch 3/10 60000/60000 [==============================] - 58s - 
loss: 0.0665 - 
acc: 0.9802 
Epoch 4/10 60000/60000 [==============================] - 62s - 
loss: 0.0571 - 
acc: 0.9830 
Epoch 5/10 60000/60000 [==============================] - 62s - 
loss: 0.0474 - 
acc: 0.9855 
Epoch 6/10 60000/60000 [==============================] - 59s -
loss: 0.0416 - 
acc: 0.9871 
Epoch 7/10 60000/60000 [==============================] - 61s - 
loss: 0.0380 - 
acc: 0.9877 
Epoch 8/10 60000/60000 [==============================] - 63s - 
loss: 0.0333 - 
acc: 0.9895 
Epoch 9/10 60000/60000 [==============================] - 64s - 
loss: 0.0325 - 
acc: 0.9898 
Epoch 10/10 60000/60000 [==============================] - 60s - 
loss: 0.0284 - 
acc: 0.9910