TensorFlow框架
关注公众号“轻松学编程”了解更多。
一、简介
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。
Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端的计算过程。
TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别和图像识别等多项机器学习和深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。
TensorFlow是开源的,任何人都可以用。
网站:http://playground.tensorflow.org
支持CNN(卷积神经网络)、RNN(循环神经网络)和LSTM(长短期记忆网络)算法,是目前在 Image,NLP 最流行的深度神经网络模型.
二、优点
TensorFlow优点:
基于Python,写的很快并且具有可读性。
在CPU或GPU系统上的都可运行。
代码编译效率较高。
社区发展的非常迅速并且活跃。
能够生成显示网络拓扑结构和性能的可视化图。
三、原理
TensorFlow原理:
TensorFlow是用数据流图(data flow graphs)技术来进行数值计算的。
数据流图是描述有向图中的数值计算过程。
有向图中,节点通常代表数学运算,边表示节点之间的某种联系,它负责传输多维数据(Tensors)。
四、使用
###1、TensorFlow使用
使用图(graph)来表示任务
在被称之为会话(Session)的上下文(context)中执行图
使用tensor表示数据
通过变量(Variable)维护状态f(x) = w*x + b
使用feed和fetch可以为任意操作(arbitrary operation)赋值或者从其中获取数据。
2、下载
在管理员模式下cmd窗口中执行:
pip install tensorflow
3、第一个tf程序
导包
# 导包
import tensorflow as tf
import numpy as np
from IPython.display import display
定义常量
# 定义常量
a = tf.constant(np.random.randint(0,100,size=(3,4)))
b = tf.constant(3.14)
s = tf.constant('hello world')
display(a,b,s)
# tensor张量-------> 数据,类比ndarray
定义变量
w = tf.Variable(np.random.randint(0,100,size=(2,3)),
dtype=tf.int8, #数据类型
name='w' #变量命名,可省略
)
w
创建会话
sess = tf.Session()
关闭会话
sess.close()
使用会话运行graph
一般使用with语句来创建会话,这样就不用手动关闭会话,with语句会自动关闭会话。
with tf.Session() as sess:
ret = sess.run(fetches=[a,b,s])
print(ret)
with tf.Session() as sess:
# 如果要使用变量,需要进行初始化
sess.run(tf.global_variables_initializer())
print(sess.run(w))
4、加减乘除
#加减乘除
a = tf.constant(100,dtype=tf.float16)
b = tf.constant(5,dtype=tf.float16)
#加
c = a + b
d = tf.add(a,b)
#减
e = tf.subtract(a,b)
#乘
f = tf.multiply(a,b)
#除
h = tf.div(a,b)
with tf.Session() as sess:
print(sess.run([a,b,c,d,e,f,h]))
矩阵乘法
a = tf.constant(np.random.randint(0,10,size = (2,3)))
b = tf.constant(np.random.randint(0,10,size = (3,