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生成了各种脚本语言的接口。