三、會話tf.Session()

①tf.Session()

運行TensorFlow操做圖的類,使用默認註冊的圖(能夠指定運行圖)前端

 1 import os
 2 os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #去掉警告,將警告級別提高
 3 
 4 # 建立一張圖
 5 g = tf.Graph()
 6 
 7 with g.as_default(): #做爲默認圖
 8     c = tf.constant(11)
 9     print(c.graph)
10 
11 a = tf.constant(2)   #定義一個常量
12 b = tf.constant(4)
13 sum = tf.add(a,b)    #加法操做
14 gr = tf.get_default_graph()
15 
16 #一個會話只能使用一張圖,默認是註冊圖,即圖gr
17 # with tf.Session() as sess:  #上下文管理
18 #     print(sess.run(sum))   #run運行加法op
19 #     print(sess.run(c))  # (Tensor Tensor("Const:0", shape=(), dtype=int32) is not an element of this graph.)
20 
21 #在會話中指定圖運行
22 with tf.Session(graph=g) as sess:  #上下文管理
23     print(sess.run(c))

輸出:python

<tensorflow.python.framework.ops.Graph object at 0x000002486656CD30>

11

②會話資源

會話擁有不少資源,如tf.Variable,tf.QueueBase和tf.ReaderBase等,會話結束後須要進行資源釋放後端

  • 使用方法 

   一、sess = tf.Session(),sess.run(),sess.close()app

   二、使用上下文管理器測試

      with tf.Session() as sess:this

        sess.run()spa

 

tensorflow能夠分爲前端系統(定義程序的圖的結構)和後端系統(運算圖的結構,用cpu,gpu進行運算)命令行

會話的功能:線程

  • 運算圖的結構
  • 分配資源計算
  • 掌握資源(變量的資源,隊列,線程),因此一旦會話結束,全部的資源將不能再使用

③打印設備信息

config=tf.ConfigProto(log_device_placement=True)
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:  #上下文管理
    # print(sess.run(sum))   #run運行加法op
    print("a.graph:",a.graph)

輸出:code

Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5

④交互式操做  tf.InteractiveSession()

在命令行進行測試時使用

 

只要有會話的上下文環境,就能夠使用操做方便的eval()

1 a = tf.constant(2)   #定義一個常量
2 b = tf.constant(4)
3 sum1 = tf.add(a,b)    #加法操做
4 
5 with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:  #上下文管理
6     print(sess.run(sum1))   #run運行加法op
7     print(sum1.eval())

輸出:

Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5
Add: (Add): /job:localhost/replica:0/task:0/device:GPU:0
Const: (Const): /job:localhost/replica:0/task:0/device:GPU:0
Const_1: (Const): /job:localhost/replica:0/task:0/device:GPU:0
6
6

 

⑤會話中的run方法

相關文章
相關標籤/搜索