人工智能神器——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的激励函数的应用