背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 作为一款优秀的异构深度学习算法框架,TensorFlow可以在多种设备上运行算法程序,包括CPU,GPU,Google开发的TPU等.因为TensorFlow的架构特性非常好,可扩展性很强,所以也支持用户自定义补充其他计算设备,比如可以接入FPGA甚至是自定义芯片等.虽然在Google发布的TensorFlow white paper中并没有过多的描述设备管理相关的内容,只是…
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在前一篇文章中,我们梳理了TensorFlow中各种异构Device的添加和注册机制,通过使用预先定义好的宏,各种自定义好的Device能够将自己注册到全局表中.TensorFlow期望通过这种模式,能够让Device的添加和注册于系统本身更好的解耦,从而体现了较好的模块化特性.在这篇文章中,我们选择直接去窥探TensorFlow底层架构较为复杂的一个部分——StreamEx…
tf程序中,系统会自动创建并维护一个默认的计算图,计算图可以理解为神经网络(Neural Network)结构的程序化描述.如果不显式指定所归属的计算图,则所有的tensor和Operation都是在默认计算图中定义的,使用tf.get_default_graph()函数可以获取当前默认的计算图句柄. # -*- coding: utf-8 -*-) import tensorflow as tf a=tf.constant([1.0,2.0]) b=tf.constant([1.0,2.0])…
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 本篇是TensorFlow通信机制系列的第二篇文章,主要梳理使用gRPC网络传输部分模块的结构和源码.如果读者对TensorFlow中Rendezvous部分的基本结构和原理还不是非常了解,那么建议先从这篇文章开始阅读.TensorFlow在最初被开源时还只是个单机的异构训练框架,在迭代到0.8版本开始正式支持多机分布式训练.与其他分布式训练框架不同,Google选用了开源项…
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 受限于单个Device的计算能力和存储大小,许多深度学习模型都有着使用模型分片或相关策略的需求.模型分片的本质是将模型和相关的计算切分到不同的Device,这样做不但可以解决单个Device放不下大模型的问题,还有可能有计算加速的收益.在深度学习框架方面,显然TensorFlow比Caffe具有更高的灵活性,这主要得益于TensorFlow的Placement机制.Place…
tensorflow中slim模块api介绍 翻译 2017年08月29日 20:13:35   http://blog.csdn.net/guvcolie/article/details/77686555 最近需要使用slim模块,先把slim的github readme放在这里,后续会一点一点翻译 github:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim TensorFlow-Sli…
背景 作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 使用GPU训练时,一次训练任务无论是模型参数还是中间结果都需要占用大量显存.为了避免每次训练重新开辟显存带来计算之外的开销,一般框架的做法是在真正的训练任务开始前,将每个节点的输入和输出,以及模型参数的shape计算出来并全局开辟一次,例如Caffe就是这种做法.随着深度学习模型的发展和迭代,不仅模型训练的数据shape可能发生变化,就连模型本身在训练过程中也可能发生变化,那么…
翻译自:https://stackoverflow.com/questions/35919020/whats-the-difference-of-name-scope-and-a-variable-scope-in-tensorflow 问题:下面这几个函数的区别是什么? tf.variable_op_scope(values, name, default_name, initializer=None) Returns a context manager for defining an op t…
创建Object ① 在uc脚本中使用new运算符来创建 /********************************************************************************** outer : The value for the new object's Outer variable. The default value is None, which means the object is created within the "transient…
1.TensorFlow中的变量和常量介绍 TensorFlow中的变量: import tensorflow as tf state = tf.Variable(0,name='counter') 以上代码定义了一个state变量, new_value = tf.add(state,1) 以上代码创建一个操作,使定义的变量加一,并将加一后的值赋给 new_value update = tf.assign(state,new_value) 赋值操作,将new_value 的值赋给state in…