1.1Tensorflow训练线性回归模型入门程序

tensorflow
#-*- coding: utf-8 -*- # @Time : 2017/12/19 14:36 # @Author : Z # @Email : S # @File : 1.0testTF.py #用于表示取消编译时的错误信息*会出现编译错误 import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf import numpy as np #创建模拟数据--随机数 x_data=np.random.rand(100).astype(np.float32) #w=0.1 b=0.3 y_data=x_data*0.1+0.3 #开始创建tensorflow结构 #定义weight初始值为-1到1之间,训练到0.1 Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0)) #初始值为0,训练到接近0.3 biases=tf.Variable(tf.zeros([1])) y=Weights*x_data+biases 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() init=tf.global_variables_initializer() #结束创建 sess=tf.Session() #激活神经网络结构 sess.run(init) #神经网络训练 for step in range(201): sess.run(train) #每隔20步输出一次权重和偏置 if step % 20 ==0: print (step,sess.run(Weights),sess.run(biases)) #下面的结果第一个参数表示的步数,第二个表示w权重更新,越来越仅仅0.1 #第三个表示的是b偏置,越来越靠近0.3 # 0 [ 0.29083064] [ 0.27781919] # 20 [ 0.14542097] [ 0.27327874] # 40 [ 0.11362123] [ 0.29198661] # 60 [ 0.10408484] [ 0.29759687] # 80 [ 0.10122498] [ 0.29927936] # 100 [ 0.10036737] [ 0.29978389] # 120 [ 0.10011017] [ 0.29993519] # 140 [ 0.10003305] [ 0.29998058] # 160 [ 0.10000992] [ 0.29999417] # 180 [ 0.10000296] [ 0.29999828] # 200 [ 0.1000009] [ 0.29999948]