摘要:写在前面 mxnet代码的规范性比Caffe2要好,看起来核心代码量也小很多,但由于对dmlc其它库的依赖太强,代码的独立性并不好。依赖的第三方库包括: 如果对于这些第三方库没有足够的理解,mxnet的核心代码看起来比较费劲。因此时间原因,本篇仅解析了mxnet对外的接口include目录,并且对于
阅读全文
摘要:写在前面 上一篇文章对Caffe2中的core模块进行了简单拆解 "Caffe2源码解析之core" ,本篇给出其它模块的拆解,目的是大致了解每个模块的内容和目标,进一步理解Caffe2的整体框架。内容不多,略做整理如下。 目录 core proto caffe2.proto hsm.proto m
阅读全文
摘要:写在前面 在对Tensorflow的后端源码进行了拆解(参见 "tensorflow源码解析系列文章索引" )之后,很想跟其它深度学习框架的实现进行对比,根据框架的流行程度,先选择了Pytorch。Pytorch的后端核心是直接复用了Caffe2,因此本文针对Caffe2源码的core模块进行了简单
阅读全文
摘要:写在前面 本文翻译自Tensorflow团队的文章 "Tensorflow Control Flow Implementation" ,部分内容加入了笔者自己的理解,如有不妥之处还望各位指教。 目录 概览 控制流核心概念 控制流结构的编译 条件表达式 while循环 实现 分布式条件表达式 分布式w
阅读全文
摘要:本篇主要介绍TF的分布式运行时的基本概念。为了对TF的分布式运行机制有一个大致的了解,我们先结合/tensorflow/core/protobuf中的文件给出对TF分布式集群的初步理解,然后介绍/tensorflow/core/distributed_runtime路径下的核心概念。 TF分布式集群
阅读全文
摘要:把common_runtime中剩余的内容,按照文件名排序进行了简单的解析,时间原因写的很仓促,算是占个坑,后续有了新的理解再来补充。 allocator_retry 有时候内存分配不可能一次完成,为了在内存分配失败时能够不断尝试,TF给出了一个在内存分配多次尝试的接口: 其中,通过调用alloc_
阅读全文
摘要:把framework中剩余的内容,按照文件名进行了简单解析。时间原因写的很仓促,算是占个坑,后面有了新的理解再来补充。 allocation_description.proto 一个对单次内存分配结果进行信息描述的proto。 attr_value 之前在讲op的时候提到过,操作是有参数的。而Att
阅读全文
摘要:文章索引 framework解析 "resource" "allocator" "tensor" "op" "node" "kernel" "graph" "device" "function" "shape_inference" "拾遗" common_runtime解析 "device" "se
阅读全文
摘要:目录 1. 核心概念 2. direct_session 1. direct_session.h 2. direct_session.cc 1. 核心概念 读过之前文章的读者应该还记得,session是一个执行代理。我们把计算图和输入交给session,由它来调度执行器,执行计算产生结果。TF给我们
阅读全文
摘要:目录 1. 核心概念 2. executor.h 1. Executor 2. NewLocalExecutor 3. ExecutorBarrier 3. executor.cc 1. structs 2. GraphView 3. ExecutorImpl 4. ExecutorState 5.
阅读全文
摘要:目录 1. 核心概念 2. executor.h 1. Executor 2. NewLocalExecutor 3. ExecutorBarrier 3. executor.cc 1. structs 2. GraphView 3. ExecutorImpl 4. ExecutorState 5.
阅读全文
摘要:目录 1. 核心概念 2. graph_optimizer 3. function 4. optimization_registry 1. 核心概念 本篇主要讲图的优化迭代器。我们在构建原始图的时候,专注于达到目的,但不会去考虑图的执行效率。如果把图的设计过程比喻为高级语言的编写,那么图的优化过程就
阅读全文
摘要:目录 1. 核心概念 2. session 3. session_factory 1. 核心概念 session可以认为是一个执行代理。我们在客户端构建计算图,提供输入,然后把计算图丢给session去执行。因此,session应该具备一定的执行功能。另外TF还提供了session的工厂类,sess
阅读全文
摘要:目录 1. 核心概念 2. device 3. device_factory 4. device_mgr 5. device_set 1. 核心概念 在framework部分,我们介绍了DeviceAttributes和DeviceBase两个结构,这些其实是为了我们今天要介绍的Device类做准备
阅读全文