tensorflow入门(1):编程基础(会话senssion,张量.get_shape())

TensorFlow是一个通过计算图的形式表述计算的编程系统。计算图是一个有向图,由一组节点和一组有向边构成。每个节点代表一个操作,是一种运算;每条边代表节点之间的关系(数据传递-实线常规边,控制依赖-虚线特殊边)。

 

会话(session):拥有并管理TensorFlow程序运行时的所有资源,当所有计算完成之后需要关闭会话帮助系统回收资源。

import tensorflow as tf
hello=tf.constant('Hello, TensorFlow!')    # 创建一个常值运算,将作为一个节点加入到默认计算图中
sess=tf.compat.v1.Session()                # 创建会话
print(sess.run(hello))                     # 运行并获得结果: b'Hello, TensorFlow!'
sess.close()                               # 关闭session

Remark: 输出前面的'b' 表示Bytes literals(字节文字)

import tensorflow as tf
tens1 = tf.constant([1,2,3])
sess = tf.Session()
try:
    print(sess.run(tens1))                  # [1 2 3]
except:
    print('Exception!')
finally:
    sess.close()

 

使用会话的几种方式

一:

import tensorflow as tf
node1 = tf.constant(3.0,tf.float32,name='node1')
node2 = tf.constant(4.0,tf.float32,name='node2')
node3 = tf.add(node1,node2)
print(node3)                                # Tensor("Add:0", shape=(), dtype=float32)    
                                            # 输出的结果不是一个数字,而是一个张量结构
sess=tf.Session()
print(sess.run(node3))                      # 7.0
sess.close()                                # 关闭session

二:

import tensorflow as tf
node1 = tf.constant(3.0,tf.float32,name='node1')
node2 = tf.constant(4.0,tf.float32,name='node2')
node3 = tf.add(node1,node2)

with tf.Session() as sess:                    # 创建会话,并通过python中的上下文管理器来管理这个会话
    print(sess.run(node3))                    # 7.0                                            

 此时,不需要再调用Session.close()来关闭会话,当退出时自动关闭会话并释放资源

三:指定默认的会话

import tensorflow as tf
node1 = tf.constant(3.0,tf.float32,name='node1')
node2 = tf.constant(4.0,tf.float32,name='node2')
node3 = tf.add(node1,node2)

sess=tf.Session()
with sess.as_default():
    print(node3.eval())                       # 7.0

四:

import tensorflow as tf
node1 = tf.constant(3.0,tf.float32,name='node1')
node2 = tf.constant(4.0,tf.float32,name='node2')
node3 = tf.add(node1,node2)

sess=tf.Session()
print(node3.eval(session=sess))                # 7.0
sess.close()

五:交互环境下设置默认会话

import tensorflow as tf
node1 = tf.constant(3.0,tf.float32,name='node1')
node2 = tf.constant(4.0,tf.float32,name='node2')
node3 = tf.add(node1,node2)

sess = tf.InteractiveSession()
print(node3.eval())                            # 7.0
sess.close()

 

在TensorFlow中,所有数据都通过张量的形式来表示。

张量并没有真正保存数字,它保存的是计算过程。

张量的属性:

  • 名字(name):"node:src_output" 表示 “节点名称:来自节点的第几个输出”。
  • 形状(shape):()表示标量。
  • 类型(dtype):不带小数点被默认为int32,带小数点则被默认为float32。
import tensorflow as tf
scalar = tf.constant(100)
vector = tf.constant([1,2,3,4,5])
matrix = tf.constant([[1,2,3],[4,5,6]])
tens1 = tf.constant([[[1,2,2],[2,2,3]],[[3,5,6],[5,4,3]],
                      [[7,0,1],[9,1,9]],[[11,12,7],[1,3,14]]],name='tens1')

print(scalar.get_shape())                   # ()
print(vector.get_shape())                   # (5,)
print(matrix.get_shape())                   # (2, 3)
print(tens1.get_shape())                    # (4, 2, 3)

sess = tf.Session()
print(sess.run(tens1)[1,1,0])               # 获取元素:5
sess.close()

 

以上。参考Mooc课程是吴明晖老师的《深度学习应用开发-TensorFlow实践》。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值