Trénování sítě v TensorFlow

Úvod do TensorFlow v Pythonu

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

Obrázek zobrazuje 3D graf složité účelové funkce zvané eggholder function.

Úvod do TensorFlow v Pythonu

Náhodné inicializátory

  • Často je třeba inicializovat tisíce proměnných
    • tf.ones() může být nevhodné
    • Ruční inicializace je zdlouhavá a obtížná
  • Alternativně: výběr počátečních hodnot z rozdělení
    • Normální
    • Rovnoměrné
    • Glorotův inicializátor
Úvod do TensorFlow v Pythonu

Inicializace proměnných v 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]))
Úvod do TensorFlow v Pythonu

Inicializace proměnných v 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')
Úvod do TensorFlow v Pythonu

Neuronové sítě a přeučení

Obrázek zobrazuje predikce jednoduchého a složitého modelu na trénovací sadě.

Obrázek zobrazuje predikce jednoduchého a složitého modelu na validační sadě.

Úvod do TensorFlow v Pythonu

Aplikace dropoutu

Tento obrázek zobrazuje neuronovou síť bez dropoutu.

Tento obrázek zobrazuje neuronovou síť s dropoutem aplikovaným na náhodné uzly.

Úvod do TensorFlow v Pythonu

Implementace dropoutu v síti

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)
Úvod do TensorFlow v Pythonu

Implementace dropoutu v síti

# 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)
Úvod do TensorFlow v Pythonu

Pojďme si procvičit!

Úvod do TensorFlow v Pythonu

Preparing Video For Download...