tensorflow源码分析(2)

Session类:

Session是连接client和tensorflow系统的中间件,负责两者之间的交互;

Session后台得实现由两种:DirectSession和GrpcSession。DirectSession在本地环境中使用,GrpcSession在分布式环境中使用,来计算相应得graph,两种方式分别对应两个不同的object实现。

Client通过Session与Master交互,而Master协调一个或者多个的 worker processes 完成计算任务,每个 worker process 负责对一个或者多个计算设备(CPU 核或者 GPU card)的任意访问和在这些设备上进行图节点的计算按照 master 的要求执行。

  

初始化参数:

Target:该session连接到得执行引擎,默认使用in-process引擎(TODO

Graph:将要再该session运行得graph,如果没有指定代表默认得graph

Config:暴露对session得配置,可以配置对session得软约束

API功能描述:

1)Session()对session的实例化,会调用Session_init_()接口

2Supper()._init_()是调用Session对象的父类的_init_()接口

3Session的父类是BaseSession,调用BaseSession_init_()接口

4)tf_session.TF_NewSession()主要是调用pywrap_tensorflow模块的TF_NewSession()接口

5_pywrap_tensorflow_internal.TF_NewSession(graph, opts)主要是调用

_pywrap_tensorflow_internal.so里面的TF_NewSession()接口

6c_api.hTensorFlow的后端执行系统面向前端开放的公共API接口之一

7SessionFactory::GetFactory 根据前端传入的target使用SessionFactory多态创建不同类型的Session(C++)对象

8DirectSessionFactory GrpcSessionFactory继承SessionFactory,实现自己的NewSession()接口

9DirectSessionFactory会调用new DirectSession()创建相应的的session

猜你喜欢

转载自blog.csdn.net/hobertony_7/article/details/84709733