Session是Graph和执行者之间的媒介,Session.run()实际上将graph、fetches、feed_dict序列化到字节数组中,并调用tf_session.TF_Run(参见/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py)
而这里的tf_session.TF_Run实际上调用了动态链接库_pywrap_tensorflow.so中实现的_pywrap_tensorflow.TF_Run接口(参见/usr/local/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py),这个动态链接库是tensorflow提供的诸多语言接口中python语言的接口。
事实上这里的_pywrap_tensorflow.so和pywrap_tensorflow.py是通过SWIG工具自动生成,tensorflow核心语言是c语言,这里是通过SWIG生成了各种脚本语言的接口。
本文详细介绍了TensorFlow中Session的工作原理。Session作为Graph与执行之间的桥梁,其run方法通过序列化Graph、fetches及feed_dict并调用TF_Run接口来执行计算。此过程涉及到_pywrap_tensorflow.so动态链接库,该库由SWIG工具自动生成,为Python提供TensorFlow C语言核心的接口。
564

被折叠的 条评论
为什么被折叠?



