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


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

?

时间: 2024-12-25 05:50:20

TensorFlow 101 | 原理与概念的相关文章

Tensorflow一些常用基本概念与函数(四)

摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为'Tensorflow一些常用基本概念与函数'系列之四. 1.序言 本文所讲的内容主要为以下列表中相关函数.函数training()通过梯度下降法为最小化损失函数增加了相关的优化操作,在训练过程中,先实例化一个优化函数,比如 tf.train.GradientDescentOptimizer,并基于一定的学习率进行梯度优化训练: optimize

Tensorflow一些常用基本概念与函数(三)

摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的数据IO.图的运行等相关函数进行讲解.为'Tensorflow一些常用基本概念与函数'系列之三. 1.序言 本文所讲的内容主要为以下相关函数: 操作组 操作 Data IO (Python functions) TFRecordWrite,rtf_record_iterator Running Graphs Session management,Error classes 2.tf函数 2.1 数据IO {Da

使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 GPU 学习深度学习>系列文章的第二篇,主要介绍了 Tensorflow 的原理,以及如何用最简单的Python代码进行功能实现.本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主. 往期内容: 使用腾讯云 GPU 学习深度学习系列之一:传统机器学

tensorflow运行原理分析(源码)

tensorflow运行原理分析(源码)  https://pan.baidu.com/s/1GJzQg0QgS93rfsqtIMURSA 原文地址:https://www.cnblogs.com/liuzhongfeng/p/8778422.html

编译原理基础概念介绍

关于编译原理 语法树 句柄 简单短语 短语 的区分,通过两个例子来理解概念以及方法: 例子1——语法树 S -> a|b|(T)  T -> TdS|S Vt={a,b,d,(,)}.Vn={S,T},S是开始符 句型(Sd(T)db)是S的一个推导,其中___是句柄;____是最左素短语:____是该句型的直接短语,_____是短语.     素短语的概念:它是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语的短语.而一个算

Storm原理和概念详解

Storm的集群结构 Storm与Hadoop的架构对比 主节点 工作节点 作业 Storm  Numbus  Supervisor toplogies(拓扑),死循环 Hadoop JobTracker  TaskTracker  MapReduce Job,执行完成立即结束 架构图 Nimbus 和Supervisors 之间所有的协调工作是通过 一个Zookeeper 集群. Nimbus进程和 Supervisors 进程是无法直接连接和无状态的;  所有的状态维持在Zookeeper中

TensorFlow 从入门到精通(七):TensorFlow 运行原理

通过几个例程,我们逐渐对 TensorFlow 建立了感性认识.本文将进一步从内在原理进行深入理解,进而为阅读源码打好基础. 1. 图(Graph) TensorFlow 计算被抽象为包括若干节点的有向图.如下图所示例子: 对应的 TensorFlow Python 代码如下: import tensorflow as tf b = tf.Variable(tf.zeros([100])) # 100-d vector, init to zeroes W = tf.Variable(tf.ran

flash动画的原理及概念

动画概念:  动画是一种综合艺术门类,是工业社会人类寻求精神解脱的产物,它集合了绘画.漫画.电影.数字媒体.摄影.音乐.文学扥个众多艺术集合为一身的艺术表现形式. 动画原理 视觉暂留(残留)现象:认得眼睛有一种特质.人眼观看物体的时候,成像于视网膜上面,并由视神经输入人脑.无疑在快速运动时,当人眼所看到的影像消失后,视神经对物体的印象不会立即消失,而要延迟0.1-0.4秒的时间,这种现象被称为视觉暂留现象. 利用这个原理,在一幅画面没有消失之前播放下一个页面,视网膜就会出现 流畅的“运动”  假

TensorFlow(二):基本概念以及练习

一:基本概念 1.使用图(graphs)来表示计算任务 2.在被称之为会话(Session)的上下文(context)中执行图 3.使用tensor表示数据 4.通过变量(Variable)维护状态 5.使用feed和fetch可以为任意的操作赋值或者从其中获取数据 TensorFlow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个tensor,执行计算,产生0个或多个tensor.tensor看做是一个n