TensorFlow 101 | 原理与概念

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow 101 | 原理与概念相关的知识,希望对你有一定的参考价值。

技术分享

“控制复杂性是计算机编程的本质”

TensorFlow是当今主流的深度学习框架之一,开源社区也在不断推动着它的发展中。网上(包括官方网站)有大量的教程可供参考,而本系列更多尝试从底层和应用角度对TensorFlow框架进行下梳理,首先是原理与概念介绍。

使用TensorFlow框架实现神经网络计算的基本原理是将计算的定义与执行相互分离,其中计算通过数据流图定义,会话执行数据流图上的操作。数据流图定义了整个计算过程,具有节省计算资源、便于自动微分计算、以及CPU/GPU并行、可视化直观等优势。

数据流图中,常量、操作或变量定义为节点,Tensor定义为边,即MxN维矩阵。

其中,常量通过tf.constant()定义,即在图定义过程中确定不变的量,类似于Numpy中的使用方式,包括定义给定值的矩阵、序列,或取随机数等。

操作包括基本的数学计算函数、矩阵操作、矩阵计算、赋值、神经网络激励函数、队列或控制流操作等。

变量通过tf.Variable()定义,与常量不同的是,变量值是在运行过程中动态确定的,同时必须在使用过程中初始化。

定义好的数据流图通过会话类管理运行计算过程。首先,创建一个会话对象tf.Session(),对变量节点进行赋值。会话在运行过程中会检查整个数据流图,即为得到变量的结果需计算哪些前置节点,没有依赖关系的节点将不参与计算。

值得注意的是,最好不要建多个数据流图,因为需要多个会话对象管理其运行过程,它们会共用默认的资源而可能产生冲突,尽量在一张图中使用不连接的子图来替代。

TensorBoard可用于数据流图的可视化,这在构建复杂模型时会非常有用,举个例子:

import tensorflow as tf

a = tf.constant(2, name="a")
b = tf.constant(3, name="b")
x = tf.add(a,b)
writer = tf.summary.FileWriter("/graph", sess.graph)
with tf.Session() as sess:
    print sess.run(x)

在命令行运行后,浏览器访问http://localhost:6000可视化结果,感兴趣的朋友动手试试看吧~

python xxx.py
tensorboard --logdir="/graph" --port 6000

数据科学武林风起云涌,
随数据小虾米共闯江湖~
技术分享

?


以上是关于TensorFlow 101 | 原理与概念的主要内容,如果未能解决你的问题,请参考以下文章

卷积神经网络(原理与代码实现)

卷积神经网络(原理与代码实现)

TensorFlow力学101笔记[4]

分享《深度学习之TensorFlow:入门原理与进阶实战》PDF+源代码

CIFAR-10 图像识别

分享《深度学习之TensorFlow:入门原理与进阶实战》PDF+源代码