在 TensorFlow 中训练网络

Python 中的 TensorFlow 入门

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

该图展示了一个名为 Eggholder 的复杂目标函数的 3D 图。

Python 中的 TensorFlow 入门

随机初始化器

  • 常需初始化成千上万个变量
    • tf.ones() 可能表现不佳
    • 逐个初始化既繁琐又难
  • 可改为从分布中抽样初值
    • 正态
    • 均匀
    • Glorot 初始化器
Python 中的 TensorFlow 入门

在 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]))
Python 中的 TensorFlow 入门

在 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')
Python 中的 TensorFlow 入门

神经网络与过拟合

该图展示了简单与复杂模型在训练集上的预测。

该图展示了简单与复杂模型在验证集上的预测。

Python 中的 TensorFlow 入门

应用 Dropout

此图展示了未使用 dropout 的神经网络。

此图展示了在随机节点上应用 dropout 的神经网络。

Python 中的 TensorFlow 入门

在网络中实现 Dropout

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)
Python 中的 TensorFlow 入门

在网络中实现 Dropout

# 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)
Python 中的 TensorFlow 入门

开始练习吧!

Python 中的 TensorFlow 入门

Preparing Video For Download...