Tensorflow中Session会话两种打开方式

1.constant创建常量,用法如下

tf.constant(
    value,  # 值可以是数字,也可以是列表
    dtype=None,  # 数据类型
    shape=None,  # 常量的形状,可选
    name='Const', # 常量的名字,可选
    verify_shape=False # 常量的形状是否可以被更改,默认不可更改
)

创建的常量,要获取其结果,需要用到会话,如下例子

import tensorflow as tf
tensor = tf.constant([[1,2,3]]) # 得到的结果为张量Tensor
# 如上定义的常量,需要查看结果必须定义会话Session
sess = tf.Session()
with sess.as_default():
    print('result:',tensor.eval())  # result: [[1 2 3]]

 

2.Session两种打开方式例子

import tensorflow as tf
import numpy as np
# tf.constant创建常量,
matrix1 = tf.constant([[1,2,3]]) # 得到的结果为张量Tensor
#print(matrix1)  # Tensor("Const:0", shape=(1, 3), dtype=int32),即表示1行3列的矩阵[1,2,3]
matrix2 = tf.constant([[4],
                        [5],
                        [6]])  
print(matrix2) #Tensor("Const_1:0", shape=(3, 1), dtype=int32),即表示3行1列的矩阵[4,5,6]T
product = tf.matmul(matrix1,matrix2)  # 矩阵乘法
#print(product) # Tensor("MatMul:0", shape=(1, 1), dtype=int32)

# 如上定义的常量,需要查看结果必须定义会话Session
# 方法1
sess = tf.Session()
result1 = sess.run(product) # 执行计算图
print('方法1')
print(result1) # [[32]]   即[1,2,3] * [4,5,6]T = 1*4 + 2*5+3*6 = 32
sess.close()
# 方法2
with tf.Session() as sess:
    result2 =sess.run(product)  # 执行计算图
    print('方法2')
    print(result2) # [[32]]

3.两种打开方式的区别

上述方法1中需手动关闭会话,方法2,由于会话在with中,因此会自动关闭。

4.TensorFlow的两种方式:Session.run和 Tensor.eval的区别

对于一个张量Tensor  x来说,使用x.eval()等价于:tf.get_default_session().run(x)

最主要区别在于run()可以在同一步获取多个tensor中的值

 

https://www.cnblogs.com/adong7639/p/8602378.html

https://blog.csdn.net/PrincessLin/article/details/90641449

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值