大数据 爬虫Python AI Sqlpython入门基础学习爬虫专题

人工智能tensorflow自学之路(2)!

2018-12-15  本文已影响0人  编程新视野

在上一篇文章中,我们用tensorflow做了一次矩阵乘法运算。这次我们要尝试使用变量,在开始之前,小编觉得有必要讲一下tensorflow的运行流程。

下面是引用cnblogs中的一篇文章内容:

tensorflow的运行流程主要有2步,分别是构造模型和训练。

在构造模型阶段,我们需要构建一个图(Graph)来描述我们的模型。所谓图,也可以理解为流程图,就是将数据的输入->中间处理->输出的过程表示出来,就像下面这样。

当然入门Python没有好的学习资料怎么行呢?所以小编这里准备了一份Python学习资料,添加小编学习交流群943752371即可。

注意此时是不会发生实际运算的。而在模型构建完毕以后,会进入训练步骤。此时才会有实际的数据输入,梯度计算等操作。就像上一篇文章中,我们定义了两个变量,虽然各自都传入了数据,但是在定义的时候他们都还是抽象的数据,直到在会话 session中被执行了训练,他们才真正意义上有了实际数据。

下面我们就开始说本次的重点——变量

还是老规矩先引入tensorflow库

importtensorflowastf# 定义一个变量和常量x = tf.Variable([1,2])# 1a = tf.constant([3,3])# 执行减法运算sub = tf.subtract(x, a)# 2# 执行加法运算add = tf.add(x, sub)# 3# 变量要初始化init = tf.global_variables_initializer()# 4withtf.Session()assess:# 初始化变量sess.run(init)# 5print(sess.run(sub))    print(sess.run(add))

1,我们定义了一个变量和一个常量,两个看起来也差不多嘛,继续

2,我们执行了减法运算,并传入了 x和a 作为参数

3,执行了加法运算

4,我们初始化了全局的变量,tensorflow中要求我们在使用变量的时候要初始化

5,我们 sess.run(init) 来执行初始化

最后我们看一下结果:

[-2 -1]

[-1  1]

我们先执行减法运算,把返回的矩阵赋值给sub,最后又和x执行了一次加法运算

注意

我们可以这样理解:在tensorflow中,所有的运算在会话中执行,在此之前都可以理解为定义了一个模型。

下面新建一个文件:

我们定义了一个变量 state ,初值为0, 然后是一次加法运算,把state的值加1后的结果返回给了 new_value,使用tf.assign(state, new_value)方法把new_value的值赋给了 state。其余的都和上面提到的一样了,先打印了一次state的初值,当然是0了。后来我们写了个循环, 反复执行5次 sess.run(update),并打印stata的值。

下面是输出结果:

0

1

2

3

4

5

需要注意的是,tensorflow中变量与变量之间不能直接赋值, 需要用tf.assign()方法。

总结:我们知道了如何去使用变量,和常量不一样的是,变量要初始化,变量之间的赋值要用tf.assign()来间接操作,至于为什么,会报错吗?显然不是,这里给个提示,尝试把 update = tf.assign(state, new_value)注释掉,用 state = new_value来代替,看一下运行结果,当然倒数第二行的sess.run(update)也要注释了。下篇文章我们会构建一个简单的线性函数,并用梯度下降法来学习它!

上一篇下一篇

猜你喜欢

热点阅读