![](https://img-blog.csdnimg.cn/20210201100525920.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Tensorflow源码研读
Tensorflow底层代码源码研读,主要研读底层实现源码
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
橘子都吃不起!
机器视觉从业人员,已经不满足上层算法的实现了.....
展开
-
TF代码研读-Device(DeviceMgr,DeviceSet)
DeviceMgr类是设备管理器的抽象,以向量的方式存储设备指针,提供查找设备、输出设备参数怒相关方法,主要用于会话、汇合点和进程之间通信等场合。 //设备管理类 class DeviceMgr { public: //输入一个包含设备对象指针的列表,初始化DeviceMgr explicit DeviceMgr(std::vector<std::unique_ptr<Device>> devices); //输入单个设备指针,初始化DeviceMgr ex原创 2021-01-31 14:15:48 · 443 阅读 · 1 评论 -
TF代码研读-Device(DeviceContext)
DeviceContext是非CPU设备执行计算操作的核心类,重点提供了stream虚函数、以及张量拷贝相关函数。并且根据不同设备进一步派生出不同的设备上下文类(GPUDeviceContext、SYCLDeviceContext、XlaDeviceContext)。 与CPU设备不同 GPU设备(SYCL/XLA/RPC也一样),设备在执行具体计算任务时并不是给Eigen底层计算的,而是由设备底层接口计算的(例如cuda),当计算较多时,不同节点的与底层设备的交互并不是直接调用相关接口,而是通过传入执行原创 2021-01-31 14:13:11 · 342 阅读 · 0 评论 -
TF代码研读-Env
Env类是tensorflow访问系统函数的接口,主要包含了大部分系统操作函数的封装。 整体上Env类提供了统一的接口(大量虚函数),但不能直接实例化,需要调用在不同系统上的子类实例化。class Env 定义在tensorflow/core/platform/env.h中,部分函数定义在同目录下的env.cc中,另外一部分在tensorflow/core/platform中不同平台(posix、windows、hadoop等有不同)目录下的env.cc中。即tensorflow在编译时,会指定编译哪个平原创 2021-01-31 14:07:55 · 435 阅读 · 0 评论 -
TF代码研读-Device(RemoteDevice)
RemoteDevice类为Device子类,专门针对远程设备提供接口。远程设备与本地的通信主要通过RPC服务进行的。对于本地进程来说,RemoteDevice类提供了与Device类一致的接口,但在底层运算上,通过RPC通道传输操作指令与数据。 RemoteDevice类定义在tensorflow/core/distributed_runtime/remote_device.cc中,注意不是在头文件里,其头文件中定义了两个创建RemoteDevice实例的函数: typedef std::funct原创 2021-01-31 14:02:29 · 356 阅读 · 0 评论 -
TF代码研读-Tensor(Tensor)
代码研读 Tensor类 Tensor类定义在tensorflow/core/framework/tensor.h中 Tensor定义了以下几个构造函数原创 2021-01-31 13:54:30 · 574 阅读 · 2 评论 -
TF代码研读-Device(LocalDevice,ThreadPoolDevice,BaseGPUDevice)
LocalDevice类根据底层执行具体计算设备的不同,可以进一步派生子类:SYCLDevice(异构)、BaseGPUDevice(Cuda显卡)、ThreadPoolDevice(CPU设备)、XlaDevice(支持xla的设备?)。 其中ThreadPoolDevice是针对CPU设备的类,主要重写了allocator与张量拷贝创建相关操作,其下还有GPUCompatibleCPUDevice的子类,主要用于GPU兼容CPU的设备(配有GPU的PC?), BaseGPUDevice针..原创 2021-01-31 13:53:41 · 370 阅读 · 0 评论 -
TF代码研读-Device(DeviceBase,Device)
Device类定义在tensorflow/core/common_runtime/device.h中,主要定义了设备设备属性、设备名称、设备管理器等成员变量,以及相关的成员函数。Device类继承DeviceBase类,DeviceBase类定义在tensorflow/core/framework/device_base.h中,DeviceBase是一个抽象类,主要定义系统环境对象、CPU线程池、GPU设备信息等底层信息。Device类在实际应用中还派生多种具体细化的子类,例如LocalDevice,Rem原创 2021-01-31 13:47:44 · 399 阅读 · 0 评论 -
TF代码研读-Tensor(TensorBuffer,RefCounted)
Tensor类中包含了两个核心成员变量 TensorShape shape_; TensorBuffer* buf_;其中TensorBuffer类型变量定义在tensor.h文件中,继承RefCounted类.RefCounted类是一个引用计数器类. class RefCounted { public: // Initial reference count is one. RefCounted();//引用计数器类,引用计数初始化为1 // Increments refere原创 2021-01-31 13:41:05 · 603 阅读 · 0 评论 -
TF代码研读-Tensor(TensorShapeRep,TensorShapeBase,TensorShape,PartialTensorShape)
在Tensor类中核心为 TensorShape shape_与TensorBuffer* buf_两个变量. 其中TensorShape类继承与TensorShapeBase<TensorShape> 这个是一个模板类,而TensorShapeBase类继承与TensorShapeRep类.TensorShapeRep是TensorShape的爷爷,TensorShapeBase是TensorShape的爸爸..... 其中爷爷类TensorShapeRep(tensor_shape.h)原创 2021-01-31 13:33:04 · 337 阅读 · 0 评论 -
TF代码研读-Device(DeviceFactory、ThreadPoolDeviceFactory、)
Device类实例化采用工厂模式进行,由于Device类有很多子类,所以DeviceFactory也派生出对应设备的工厂类( ThreadPoolDeviceFactory,GPUCompatibleCPUDeviceFactory,dengBaseGPUDeviceFactory,XlaCpuDeviceFactory,XlaGpuDeviceFactory等 )。 //设备工厂抽象类,定义了几个静态变量和,虚函数接口 class DeviceFactory { public: virtua原创 2021-01-31 14:22:42 · 387 阅读 · 0 评论