025-使用TensorFlow训练一个入门方程(Y = 0.1X+0.3),步骤清晰,小白也能看懂——神经网络、深度学习、TensorFlow

第一步,我们这次要操作的一元一次函数是:

y=0.1*x+0.3 

首先用Python做出这个图像,直观感受一下。等会儿我们会随机生成训练集的数据去拟合这条线。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-100,100)
y = 0.1*x+0.3
plt.plot(x,y)
plt.show()

 接下来的工作必须要确保你的TensorFlow、Numpy都是安装好的,如果不会安装,请自行CSDN,有很多安装教程可以参考!

 接下来的工作必须要确保你的TensorFlow、Numpy都是安装好的,如果不会安装,请自行CSDN,有很多安装教程可以参考!

 接下来的工作必须要确保你的TensorFlow、Numpy都是安装好的,如果不会安装,请自行CSDN,有很多安装教程可以参考!

# tf是一个缩写,这样比较好书写
import tensorflow as tf
# 科学计算模块numpy
import numpy as np

# 创造一些数据,也就是自己编一些数据
#np.random.rand()函数,通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。 
#tensorflow对float32支持比较好

x_data = np.random.rand(100).astype(np.float32)
# 如果预测的Weights很接近0.1,biases很接近0.3,那么TensorFlow就很学到东西了
#真实的方程
y_data = x_data * 0.1 + 0.3

# 开始创建TensorFlow结构
# 之所以要大写Weights,是因为它可能是一个矩阵的形式,这里也就是正要取代0.1
# Weights是一个一维的结构,随机数列生成的范围是在-1.0到1.0之间
#tf.Variable()是定义图变量,[1]是代表一维,tf.random_uniform是在-1.0到1.0之间产生均匀分布的矩阵
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
# 初始给的值定义成0
# 分别定义的是Weights和biases
#tf.zeros,一位数组里有一个值,值是0.
biases = tf.Variable(tf.zeros([1]))

# 这里列出方程
y = Weights * x_data + biases

# 预测的y和实际上的y有一个差别
loss = tf.reduce_mean(tf.square(y - y_data))
# 建立一个优化器
# 0.5是梯度下降搜索步长
optimizer = tf.train.GradientDescentOptimizer(0.5)
# 用优化器减少误差
train = optimizer.minimize(loss)

# 初始化这个结构,让它们活动起来
init = tf.initialize_all_variables()
# 结束创建TensorFlow结构

sess = tf.Session()
# 神经网络被激活了,非常重要
sess.run(init)

for step in range(201):
    # 训练它
    sess.run(train)
    if step%20==0:
        print(step,sess.run(Weights),sess.run(biases))
2019-05-05 19:21:47.155367: I tensorflow/core/common_runtime/process_util.cc:69] Creating new thread pool with default inter op setting: 12. Tune using inter_op_parallelism_threads for best performance.
0 [-0.45984256] [0.8575556]
20 [-0.072] [0.39415455]
40 [0.05555299] [0.32433078]
60 [0.08851434] [0.30628738]
80 [0.09703197] [0.30162475]
100 [0.09923303] [0.30041987]
120 [0.09980182] [0.3001085]
140 [0.0999488] [0.30002806]
160 [0.09998676] [0.30000725]
180 [0.09999659] [0.3000019]
200 [0.09999914] [0.3000005]
Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/qq_31698195/article/details/89853158
今日推荐