莫烦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。

浙公网安备 33010602011771号