矩张量计算 matlab,TensorFlow计算图,张量,会话基础知识

importtensorflow as tf#tensor 张量 零阶张量是标量scalar 一阶张量是向量vector n阶张量理解为n维数组#张量在TensorFlow中不是直接采用数组的形式,只是运算结果的引用。并没有保存数组,保存的是如何得到这些数字的计算过程

#tf.constan是一个计算,结果为一个张量,保存在变量a中

a=tf.constant([1.0,2.0],name="a")

b=tf.constant([2.0,3.0],name="b")

result=a+bprint(result)#Tensor("add:0", shape=(2,), dtype=float32)

result=tf.add(a,b,name="add")print(result)#Tensor("add_1:0", shape=(2,), dtype=float32)#张量保存三个属性 名字name(唯一标识) 维度shape 类型 dtype#张量的命名是node:src_output形式给出,node是节点名称,src_output是表示张量来自节点第几个输出#add_1:0 说明是add节点的第一个输出(编号从0开始)#shape=(2,) 以为数组,长度为2

#dtype=float32 每个张量类型唯一,不匹配将报错

'''a=tf.constant([1,2],name="a")

b=tf.constant([2.0,3.0],name="b")

result=a+b

print(result)

#ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("b_1:0", shape=(2,), dtype=float32)''''

#result.get_shape 获取张量的维度

print(result.get_shape)#result#>

#当计算图构造完成后,张量可以获得计算结果 (张量本身没有存储具体的数字)

#使用session来执行定义好的运算 (也就是张量存储了运算的过程,使用session执行运算获取结果)#创建会话

sess=tf.Session()

res=sess.run(result)print(res)#result is [ 3. 5.]#关闭会话是本地运行使用到的资源释放

sess.close()#也可以使用python上下文管理器机制,吧所有的计算放在with中,上下文管理器推出是自动释放所有资源,可以避免忘记sess.close()去释放资源

with tf.Session() as sess:print(sess.run(result))#[ 3. 5.]

#as_default 通过默认的会话计算张量的取值 会话不会自动生成默认的会话,需要手动指定 指定后可以通过eval来计算张量的取值

sess =tf.Session()

with sess.as_default():print(result.eval())#[ 3. 5.]

#ConfigProto来配置需要生成的会话#allow_soft_placement GPU设备相关#log_device_palcement 日志相关

config=tf.ConfigProto(allow_soft_placement=True,

log_device_placement=True)

sess1=tf.InteractiveSession(config=config)

sess2=tf.Session(config=config)#Device mapping: no known devices. tensorflow\core\common_runtime\direct_session.cc#Device mapping: no known devices.

#PY\35\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值