本篇博客主要介绍TensorFlow中的可视化梯度下降和参数调参。
首先是可视化梯度下降,使用的是python中Axes3d模块。
示例代码:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
LR = 0.01
REAL_PARAMS = [1.2, 2.5]
INIT_PARAMS = [[5, 4],
[5, 1],
[2, 4.5]][2]
x = np.linspace(-1, 1, 200, dtype=np.float32)
# test 1
y_fun = lambda a, b: a * x + b
tf_y_fun = lambda a, b: a * x + b
noise = np.random.randn(200) / 10
y = y_fun(*REAL_PARAMS) + noise
plt.scatter(x, y)
plt.show()
a, b = [tf.Variable(initial_value=p, dtype=tf.float32)
for p in INIT_PARAMS]
pred = tf_y_fun(a, b)
mse = tf.reduce_mean(tf.square(y - pred))
train_o