欢迎

莫烦python的tf神经网络训练例子(1)

import tensorflow as tf
import numpy as np #导入有关数学的包
#随机生成一些数据  create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3 #预测的位置

###create tensorflow structure###

Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0))#[1]表示目前生成的是一维的,而-1.0,1.0是weights的范围
#之所以大写W是因为Weights有可能是一个矩阵,Variable是一个变量,tf.random_uniform()随机生成数据
biases = tf.Variable(tf.zeros([1]))#设定初始值是0

#预测的y

y = Weights*x_data+biases

#计算loss,也就是预测的y跟实际的y的差别

loss = tf.reduce_mean(tf.square(y-y_data))
#因为有误差,所以建立一个神经网络,用神经网络优化误差,也就是误差优化器,减少误差
optimizer = tf.train.GradientDescentOptimizer(0.5)#0.5是learing rate,一般来说小于1
train = optimizer.minimize(loss)

init = tf.initialize_all_variables()#初始化神经网络

###create tensorflow structure###
#以上,神经网络的所有结构创建完成

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

#开始训练我们的神经网络
for step in range(201):
    sess.run(train,)
    if step%20 == 0:#每个20步进行一个打印
        print(step,sess.run(Weights),sess.run(biases))
        #运行以下sess.run,告诉我Weights现在的值,也进行sess.run,告诉我们biases的值

这个代码通过构建一个简单的神经网络,对随机生成的一些数据进行训练,使得它们可以收敛于x_data=0.1,y_data=3

目标函数是:y_data = x_data*0.1 + 0.3

而我们的预测函数是:y = Weights*x_data+biases

将训练的结果显示出来,设计每20步输出打印一次x,y 的值,以下是训练101次的结果:

 

 可以看出随着训练次数的增加,x_data收敛于0.1,y_data收敛于3。

posted @ 2022-10-24 16:33  bokeyuan-aa  阅读(92)  评论(0)    收藏  举报