import tensorflow as tf #创建两个矩阵maxtrix,然后输出两个矩阵相乘的结果 matrix1 = tf.constant([[3,3]])#constant表示maxtrix1是一个常数,[3,3]表示是一个一行两列的结果 matrix2 = tf.constant([[2],[2]])#maxtrix2表示两行一列的矩阵 product = tf.matmul(matrix1,matrix2)#将matrix1,matrix2放到matuml中去 #matrix mulitply矩阵乘法 在np(也许是numpy)中是:op.dot(m1,m2) #有两种形式进行session的会话选择控制 #method 1 sess = tf.Session()#Session一定要大写,因为它是一个Object result1 = sess.run(product)#返回product的结果,用sess.run # # 进行结构的运行,每run一次,tensorflow才会执行一次这个结构 print(result1) sess.close() #method 2 # with tf.Session as sess:#我打开了tf.Session,然后以sess返回输出 # #我也不用管是否sess.close(),因为sess.close()包含在with语句的for循环之内 # result2 = sess.run(product) # print(result2)
首先说一下session在tensorflow中的作用:
用莫烦的话说,session 就是一个执行命令的东西,也就是一个对话的控制
有点笼统,所以找了一篇博客进一步了解了一下(原文链接:https://blog.csdn.net/m0_52126875/article/details/126559651)
作用:session拥有和管理物理资源CPU和GPU、网络连接的功能,最典型的使用方法是作为上下文管理器来使用
Session的参数:
主要有三个:
(1)target 用来控制 session 使用的硬件设备, 如果使用空值,那么这个 session 就只会使用本地的设备,如果使用 grpc:// URL,那么就会使用这台服务器控制的所有设备。
(2)graph 用来控制该 session 运行哪个计算图,如果为空,那么该 session 就只会使用当前的默认 Graph,如果使用多个计算图,就可以在这里指定。
(3)config用来 指定一个 tf.ConfigProto 格式的 session 运行配置,比如说它里面包含的 allow_soft_placement 如果指定为 TRUE,那么 session 就会自动把不适合在 GPU 上运行的 OP 全部放到 CPU 上运行;cluster_def 是分布式运行时候需要指定的配置;gpu_options.allow_growth 设置会使得程序在开始时候逐步的增长 GPU 显存使用量,而不是一开始就最大化的使用所有显存。第一个和第三个配置是经常用到的。
3.Session的运行
tf.Session.run()是运行运算OP和tensor的值的主要方式,可以一次性传入多个 OP 和 tensor 给它,然后TensorFlow 会自动执行所有需要的 OP 来得到结果。