TensorFlow1.x入门(4)——线性回归

系列文章

本教程有同步的github地址

0. 统领篇

1. 计算图的创建与启动

2. 变量的定义及其操作

3. Feed与Fetch

4. 线性回归

5. 构建非线性回归模型

6. 简单分类问题

7. Dropout与优化器

8. 手动调整学习率与TensorBoard

9. 卷积神经网络(CNN)

10. 循环神经网络(RNN)

11. 模型的保存与恢复

知识点

线性回归:是回归问题,形式如 y = k × x + b y=k\times 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))
#%%

猜你喜欢

转载自blog.csdn.net/qq_19672707/article/details/105236091