Entraîner un réseau dans TensorFlow

Introduction à TensorFlow en Python

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

L'image montre un tracé 3D d'une fonction objectif complexe appelée fonction « eggholder ».

Introduction à TensorFlow en Python

Initialiseurs aléatoires

  • Souvent, il faut initialiser des milliers de variables
    • tf.ones() peut donner de piètres résultats
    • Fastidieux et difficile d'initialiser chaque variable
  • Autre option : tirer des valeurs initiales d'une distribution
    • Normale
    • Uniforme
    • Initialiseur de Glorot
Introduction à TensorFlow en Python

Initialiser des variables dans TensorFlow

import tensorflow as tf

# Define 500x500 random normal variable
weights = tf.Variable(tf.random.normal([500, 500]))

# Define 500x500 truncated random normal variable
weights = tf.Variable(tf.random.truncated_normal([500, 500]))
Introduction à TensorFlow en Python

Initialiser des variables dans TensorFlow

# Define a dense layer with the default initializer
dense = tf.keras.layers.Dense(32, activation='relu')

# Define a dense layer with the zeros initializer
dense = tf.keras.layers.Dense(32, activation='relu',\
    kernel_initializer='zeros')
Introduction à TensorFlow en Python

Réseaux de neurones et surapprentissage

L'image montre les prédictions de modèles simple et complexe sur l'ensemble d'entraînement.

L'image montre les prédictions de modèles simple et complexe sur l'ensemble de validation.

Introduction à TensorFlow en Python

Appliquer le dropout

Cette image montre un réseau de neurones sans dropout.

Cette image montre un réseau de neurones avec un dropout appliqué à des nœuds aléatoires.

Introduction à TensorFlow en Python

Implanter le dropout dans un réseau

import numpy as np
import tensorflow as tf

# Define input data
inputs = np.array(borrower_features, np.float32)
# Define dense layer 1
dense1 = tf.keras.layers.Dense(32, activation='relu')(inputs)
Introduction à TensorFlow en Python

Implanter le dropout dans un réseau

# Define dense layer 2
dense2 = tf.keras.layers.Dense(16, activation='relu')(dense1)
# Apply dropout operation
dropout1 = tf.keras.layers.Dropout(0.25)(dense2)
# Define output layer
outputs = tf.keras.layers.Dense(1, activation='sigmoid')(dropout1)
Introduction à TensorFlow en Python

Passons à la pratique !

Introduction à TensorFlow en Python

Preparing Video For Download...