基础
深度学习介绍
深度学习,如深度神经网络、卷积神经网络和递归神经网络已被应用计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域。并获取了极好的效果。
tensorflow特点
1、真正的可移植性
引入各种计算设备的支持包括CPU/GPU/TPU,以及能够很好地运行在移动端,
如安卓设备、ios、树莓派等等
2、多语言支持
Tensorflow 有一个合理的c++使用界面,也有一个易用的python使用界面来构建和
执行你的graphs,你可以直接写python/c++程序。
3、高度的灵活性与效率
TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库
能够灵活进行组装图,执行图。随着开发的进展,Tensorflow的效率不算在提高
4、支持
TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望
TensorFlow 成为机器学习研究人员和开发人员的通用语言
cpu与gpu
cpu:运行操作系统,主要处理业务,计算能力不是特别突出
gpu:专门为计算设计的,计算部件多
tensorflow
tensorflow中的图
数据流图
tensorflow中的数据是tensor(张量)
flow是流动的意思,tensorflow就是说数据在整张图中进行运算,流动
图中的方块被称之为节点(operation):专门进行运算。所有操作都是一个op
图(Graph)的概念:你的整个程序的结构
图默认已经注册,一组表示 tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象
会话:运算程序的图,当你定义好图之后,还需要进行运算才能得出结果。Session的运算只能运算一张图
图的获取调用:
- tf.get_default_graph()
- op、sess或者tensor 的graph属性
默认的这张图相当于给程序分配一个内存,
tensorflow进阶
在机器学习中,io操作并不频繁,大多都是计算密集型
图
图的创建
tf.Graph()
import tensorflow as tf
#创建一张图
g = tf.Graph()
print(g)
with g.as_default(): #使用这张图,在这个上下文环境中使用的图和其他的图互不干扰
c = tf.constant(11.0)
print(c.graph)
op
op:只要使用tensorflow的API定义的函数都是OP
tensor:指代的就是数据
会话
tensorflow分为前端系统和后端系统
前端系统:定义程序的图的结构
后端系统:运算图结构
会话的作用
- 运行图的结构(只能运算一张图,可以在会话中指定运行哪张图)
- 分配资源计算
- 掌握资源(变量、队列、线程),会话结束,这些资源就不能再使用
Session.run()即运行整张图,如果不用上下文管理器就需要手动close
import tensorflow as tf
#实现一个加法运算
a = tf.constant(5.0)
b = tf.constant(0.4)
mysum = tf.add(a, b)
print(mysum)
print(tf.get_default_graph())
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: #Session的这个参数可以让我们知道op在那个设备上运行(比如add是在哪个cpu上执行的)
print(sess.run(mysum))
print(a.graph)
print(mysum.eval()