tensorflow中的session和graph

来源:互联网 发布:linux如何清除dns缓存 编辑:程序博客网 时间:2024/06/17 09:49
import tensorflow as tfsess = tf.Session()a = tf.placeholder("float")b = tf.placeholder("float")c = tf.constant(6.0)d = tf.add(a, b)y = tf.add(d, c)print(sess.run(y, feed_dict={a: 3, b: 3}))

实验结果:

12.0

在python中
如果这样写就会报错,因为a,b在d = tf.add(a, b)执行的时候,a,b没有赋值。在tensorflow中启动session的时候才会执行,这个时候通过
feed_dict={a: 3, b: 3}给a,b进行了赋值所以不会报错。
tensorflow定义的方法和变量如果没有session去启动,操作就不会执行。

主要数字运算还包括:tf.addtf.subtf.multf.divtf.modtf.abstf.negtf.signtf.invtf.squaretf.roundtf.sqrttf.powtf.exptf.logtf.maximumtf.minimumtf.costf.sin主要矩阵运算还包括:tf.diag生成对角阵tf.transposetf.matmultf.matrix_determinant计算行列式的值tf.matrix_inverse计算矩阵的逆

tensorflow的Session是如何工作的
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生成了各种脚本语言的接口

阅读全文
0 0
原创粉丝点击