import numpy
import tensorflow as tf
#自己创建的数据
x_data = numpy.random.rand(100).astype(numpy.float32)#创建具有100个元素的数组
y_data = x_data*0.1+0.3#具有自动遍历的功能
##设置神经网络的结构###
Weights = tf.Variable(tf.random_uniform([1],-1,1))
basiss = tf.Variable(tf.zeros([1]))
#模拟我们之前写的数学方程式
y = Weights*x_data+basiss
#比较误差
loss = tf.reduce_mean(tf.square(y-y_data))
#知道误差,建立优化器,减小误差
optimzier = tf.train.GradientDescentOptimizer(0.5)#其中的数据表示学习效率,一般是小于1的数据
#参数更新
trian = optimzier.minimize(loss)
#以上都是建立神经网络的结构
#下面是训练
#初始化,初始化Variable,才能使用变量
init = tf.global_variables_initializer()
#创建对话可以理解为c++的指针
sess = tf.Session()
#指向结构
sess.run(init)
#训练
for step in range(201):
#指向误差更新,使得它不断的训练
sess.run(trian)
if step%20==0:
print(step,sess.run(Weights),sess.run(basiss))
#初步跑一个简单的神经网络代码:思路:1、创建一个数学方程 2、设置神经网络的结构(1)、设置
两个变量的值,然后仿照第一步数学方程,求出来的结果和第一步求出来的结果比较(2)、比较误差
优化误差,刷新误差 3、开始训练:(1)、初始化结构里面的vairable (2)、创建对话(指针)
然后指向结构(执行)、然后用for语句进行训练
运行结果:
0 [0.03197816] [0.476912]
20 [0.06810132] [0.31761634]
40 [0.09198748] [0.304425]
60 [0.09798737] [0.30111152]
80 [0.09949446] [0.3002792]
100 [0.09987302] [0.30007014]
120 [0.09996811] [0.30001763]
140 [0.099992] [0.30000442]
160 [0.09999802] [0.3000011]
180 [0.0999995] [0.30000028]
200 [0.09999988] [0.30000007]
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tensorflow学习之路—简单的代码 - Python技术站