系列文章
本教程有同步的github地址
知识点
线性回归:是回归问题,形式如
y
=
k
×
x
+
b
y=k\times x + b
y=k×x+b。
np.random.rand()
通过这个函数可以生成一个或者一组从0-1
均匀分布的随机样本值。随机样本的取值范围是[0, 1)。
tf.square()
计算平方,针对一个或者一组数据进行平方计算,即x^2
。
tf.reduce_mean()
计算平均数,计算一个list的平均数。
tf.train.GradientDescentOptimizer()
定义SGD
优化器。
示例
#%% md
# 线性回归
#%%
import tensorflow as tf
import numpy as np
#%% md
生成随机的数据点100个
np.random.rand()函数
作用:
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是\[0,1),不包括1。
#%%
x_data = np.random.rand(100)
y_data = 0.1 * x_data +0.2
#%%
x_data
#%%
y_data
#%% md
构造线性模型
#%%
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k * x_data + b
#%%
k
#%%
b
#%%
y
#%% md
创建二次代价函数
`tf.square()`计算平方
`tf.reduce_mean()`计算均值
#%%
loss = tf.reduce_mean(tf.square(y - y_data))
#%%
loss
#%% md
定义优化器
#%%
optim = tf.train.GradientDescentOptimizer(0.2)
#%%
optim
#%% md
最小化代价函数
#%%
train_step = optim.minimize(loss)
#%%
train_step
#%% md
初始化全部的变量
#%%
init = tf.global_variables_initializer()
#%% md
训练迭代
#%%
with tf.Session() as sess:
sess.run(init)
for step in range(2000):
sess.run(train_step)
if step % 20 == 0:
k_value, b_value, loss_value = sess.run([k, b, loss])
print("k={}, b={}, loss={}".format(k_value, b_value, loss_value))
#%%