tensorflow 的处理结构
Tensorflow 首先要定义神经网络的结构, 然后再把数据放入结构当中去运算和 training.
因为TensorFlow是采用数据流图(data flow graphs)来计算, 所以首先我们得创建一个数据流流图, 然后再将我们的数据(数据以张量(tensor)的形式存在)放在数据流图中计算. 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组, 即张量(tensor). 训练模型时tensor会不断的从数据流图中的一个节点flow到另一节点, 这就是TensorFlow名字的由来.
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 #定义了我们想要的权重0.1和偏重0.3,下面使结构学习达到这两个值
### create tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1],-0.1,0.1))
biases = tf.Variable(tf.zeros([1])) #定义初始权重和偏重
y = Weights *x_data + biases #预测的y,通过Weights *x_data + biases来提升y准确度
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.initialize_all_variables()
### create tensorflow structure end ###
sess = tf.Session()
sess.run(init) #整个神经网络就被激活了,非常重要,指针指到init
for step in range (200):
sess.run(train)
if step%20 ==0:
print(step,sess.run(Weights),sess.run(biases))