TensorFlow 是一个开源机器学习框架,具有快速、灵活并适合产品级大规模应用等特点,让每个开发者和研究者都能方便地使用人工智能来解决多样化的挑战。
TensorFlow能够让你直接解决各种机器学习任务。目标就是在一般情况下,无论你遇到什么问题,TensorFlow都可以在一定程度上提供API的支持。
问题:判断一张图片中包含的是猫还是狗。这用传统的编程方法很难甚至不可能解决。因为很难制定出一系列规则,来决定什么是猫什么是狗。
方法:最重要该如何把握所有的变量,比如品种、姿势、亮度、以及比例等等。
步骤:
深度学习时所指的"深度”。在这里'深度'指的就是,层与层之间更深层次的协调。以及随之产生的更加复杂的连接。最终的结果就是你的模型中,有百万级别甚至十亿级别数量的神经元。这就是为什么通过深度神经网络得到的结果。能够极大地优于,早期的手工构建并且手工调试的模型。TensorFlow能够在大型神经网络中表现地如此高效的原因是,它能把你写的代码转换成操作图。而真正运行的正是这种图。
反向传播:当我们基于所见的样本以及计算的误差,来更新模型中的连接强度。这整个过程就是反向传播。
所以实现在网络中先反向传播,然后再前向传播。每一层神经元之间的连接强度,基本上就是非常大的矩阵数学运算。这正是TPU常做的,并且算得又快又好。ython几乎是构建TensorFlow图的唯一选择。直到现在它也是一个不错的选择。Python非常简单,现成的样例代码非常多,几乎支持任何内容。
什么是数据流图(Data Flow Graph)?
数据流图用“节点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点”一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以运输“size可动态调整”的多维数组,即“张量”(tensor)。一旦输入端所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行计算。
概念:
使用TensorFlow前必须明白的基本概念:
图(Graph):图描述了计算的过程,TensorFlow使用图来表示计算任务。
张量(Tensor):TensorFlow使用tensor表示数据。每个Tensor是一个类型化的多维数组。
操作(op):图中的节点被称为op(operation的缩写),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。
会话(Session):图必须在称之为“会话”的上下文中执行。会话将图的op分发到诸如CPU或GPU之类的设备上执行。
变量(Variable):运行过程中可以被改变,用于维护状态。
Import tensorflow as tf
a=tf.constant(5,name=”input_a”)
b=tf.constant(3,name=”input_b”)
c=tf.mul(a,b,name=”mul_c”)
d=tf.add(a,b, name=”mul_d”)
e=tf.add(c,d, name=”mul_e”)
sess=tf.Session(0)
output=sess.run(e)
write=tf.train.summaryWriter(‘./my_graph’,sess.graph)
write.close()
sess.close()