人工智能神器——TensorFlow入门基础(构建TensorFlow数据结构)
TensorFlow流程图
TensorFlow流程图
通过以上的分享,我们了解到了TensorFlow的基本基础知识,本期主要介绍一下TensorFlow的结构,Tensorflow 是非常重视结构的, 只有建立好了神经网络的结构, 才能放置一些数据, 进而运行这个结构.
创建TensorFlow结构
一:创建初始化数据
我们需要import TensorFlow与numpy两个模块,使用numpy设置我们的初始数据(我们定义的实际数据)
import tensorflow as tf import numpy as np #设置初始数据 x=np.random.rand(200).astype(np.float32) y=x*0.2+0.3 #线性一元一次方程
二:创建TensorFlow数据结构(构建图)
我们上几期讨论过TensorFlow的常量 tf.constant来表示,在TensorFlow中,变量的表示为tf.Variable ,我们使用tf.Variable 来描述y_train(TensorFlow通过训练学习到的一元一次方程)的参数
我们定义2个变量:Weights与biases
那么TensorFlow学习到的一元一次方程为:y_train=Weights*x+biases
TensorFlow通过学习使Weights尽量接近0.2,biases尽量接近0.3,y_train尽量接近y
#创建TensorFlow数据结构 Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0)) #权重 biases=tf.Variable(tf.zeros([1])) #偏差 y_train=x*Weights+biases
三:设置偏差
TensorFlow训练的目的就是把得到的Weights尽量接近0.2,biases尽量接近0.3,就是y_train 接近y ,我们定义一个误差loss来表示,TensorFlow的目的就是把loss尽量缩小
loss=tf.reduce_mean(tf.square(y_train-y)) #tf.square 是求平方和,tf.reduce_mean是 #归约计算(Reduction)的求tensor中平均值 #关于TensorFlow的函数我们后期介绍
四:设置优化器
TensorFlow optimizer(优化器)主要用来训练神经网络(利用不同的算法来优化我们的神经网络)
optimizer=tf.train.GradientDescentOptimizer(0.5)#最基本的优化器
优化函数
五:设置神经训练网络
之所以说是设置是因为此时整个神经网络还没有运行,我们需要启动图(启动神经网络)
train=optimizer.minimize(loss) #训练的目的是最小化loss
六:启动神经网络
在启动神经网络之前我们需要进行TensorFlow变量的初始化(TensorFlow中,变量必须进过初始化,否则定义的变量是不直接进行运算的),然后使用我们前期学习的到的sess = tf.Session()的run函数来运行我们的神经网络
init=tf.global_variables_initializer() #初始化TensorFlow变量 sess.run(init) #TensorFlow中,所有的运行必须使用run函数 sess.run(train) #启动神经网络
以上就是整个TensorFlow的结构设计,为了看到TensorFlow学习的效果,我们每隔10步打印一下TensorFlow训练的结果
with tf.Session() as sess: sess.run(init) for step in range(101):#训练100step sess.run(train) if step%10==0: print(step,sess.run(Weights),sess.run(biases)) >>>
TensorFlow 结果
从以上的数据,我们可以看出,TensorFlow 0步随机数据是:
Weights=-0.36
biases=0.77
经过反复的train,TensorFlow把Weights,biases训练的已经很接近我们定义的值
下期预告
OK,以上就是本期分享的内容,下期我们介绍一下我们先前讲述的TensorFlow的激励函数的应用