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]