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。
标签:sess,run,莫烦,python,神经网络,Weights,tf,data From: https://www.cnblogs.com/bokeyuanjj/p/16821901.html