架构
1、在网络通信、硬件上开发变量、基础op和一些函数。在之上有执行器、分布式。然后是api接口和应用。
2、核心为,通信、设备管理、op对数据操作、图计算。
3、core目录包含了核心模块。public和client,一个是api接口头文件、一个是api接口实现。platform为和os相关接口文件。protobuf为数据传输的结构化序列。framework包含log、tensor、memory、registey等。graph,distributed,都好理解。kernels是核心的op,ops为梯度、io等op。lib为公共库,如hash等。stream_executor是并行计算框架。common_runtime有session、threadpool、executor管理等。contrib是contributor贡献。gpus封装了cuda cudnn编程库。
4、tensor相关操作,slice add reshape reduce shuffle 等。tensorbuffer
指针,指向Eigen::Tensor
5、
Python所构建好的graph模型,会在底下悄悄地生成一个由GraphDef表示的图结构来。然后我们使用Python等语言里的Session具体去分配内存,初使化参数,运行计算图时,TF的后端会将我们前一步所构建的GraphDef转化为一个可执行的Graph。
构建scope,即new graph,包含着op registry。
1 | //static OpRegistry* global_op_registry = new OpRegistry; graph里包含 registry |
本文链接: https://satyrswang.github.io/2021/04/16/TensorFlow源码解读01/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!