tensorflow学习笔记(一)
简介
Tensorflow是一个开源的、基于 Python 的机器学习框架,其前身是谷歌的神经网络算法库,由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护。
它是基于数据流编程数学运算系统,可部署于服务器、个人pc、网页、Android设备并支持GPU和TPU(Tensor Processing Units)高性能数值计算,除了 Python,TensorFlow 也提供了 C/C++、Java、Go、R 等其它编程语言的接口。
清楚了机器学习算法的过程后,自己也可以一步步用numpy把算法写出来,但可能会步骤很麻烦、代码很长、效率不高,而tensorflow等机器学习库将要用到的矩阵操作采用高效的运算方法,封装成API(函数),供我们方便的调用,这样能使我们的想法得以快速实现,而不必重新造轮子。
编程模式—数据流编程
tensorflow翻译过来就是张量流,张量可以理解成矩阵的意思,二维张量就是二维矩阵,数据在tensorflow也是以张量(tensor)的类型存在,程序运行也就是张量(数据)在节点中流动的过程。
用tensorflow库写python代码与平常的代码有所不同,它不是执行一行就得出一行的结果。
它是以有向图的方式执行,每个变量都是一个节点,数据在节点中流动。比如求c=a+b,先定义a,b三个节点,定义c=a+b,定义好后定义一个会话Session,会话运行变量c,这样数据就会从a和b流向c。
这样说着可能跟平常编程一样,看一下下面的程序就清楚数据流编程模式了。
第一个程序
程序计算c = a + b
import tensorflow as tf a = tf.constant(3) # 定义a和b为tf常量 b = tf.constant(4) c = tf.add(a, b) # 定义c和c的值来源,此行并不会得出c的值,只是定义了c with tf.Session() as sess: # 定义一个会话 print(sess.run(c)) # 在会话中计算c的值并打印
程序与平常程序不同的使第四行并不会得出c的结果,在会话中sess.run(c) 才会计算c=a+b。
会话Session()运行完需要显示关闭会话,sess.close(),通过with...as... 就可以在计算完成后自动关闭会话。