TensorFlow——tensorflow編程基礎


0.tensorflow中的模型運行基礎

tensorflow的運行機制屬於定義和運行相分離,在操作層面可以抽象成兩種:模型構建和模型運行。

在模型構建中的常見概念:

  張量(tensor):數據,即某一類型的多為數組

  變量(Variable):常用於定義模型中的參數,是通過不斷訓練得到的值

  占位符(placeholder):輸入變量的載體,也可以理解成模型的參數

  圖中的節點操作(operation,op):即一個op獲得0個或多個tensor,執行得到,輸出得到的tensor

計算圖代表一個計算任務,在模型運行的環節中,圖會在會話中被啟動,session將圖中的op分發到CPU或GPU子類的設備上,同時提供執行op的方。這些方法執行后,將產生tensor返回,在python中返回的是numpy的ndarray對象,在C/C++中返回的tensor是TensorFlow::Tensor實例

session與圖交互過程中還定義了下面兩種數據流向機制:

  注入機制(feed):通過占位符模型傳入數據

  取回機制(fetch):從模型中得到結果

import tensorflow as tf

hello = tf.constant('hello world')
sess = tf.Session()
print(sess.run(hello))
sess.close()

建立session,在session中輸出hello,world,通過run方法得到hello的值,下面使用with session的作用

# /usr/bin/python
# -*- encoding:utf-8 -*-

import tensorflow as tf
import numpy as np

a = tf.constant(4)
b = tf.constant(2)

with tf.Session() as sess:
    print("相加: a + b ", sess.run(a+b))
    print("相乘: a * b ", sess.run(a*b))

with session的用法是最常見的,它使用python中的with語法,即當程序結束時,會自動關閉session,不需要寫close。

下面演示注入機制,使用注入機制,將具體的實參注入到相應的placeholder中。feed只在調用的方法內有效,方法結束后feed就會自動消失。

import tensorflow as tf
import numpy as np

a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
mul = tf.multiply(a, b)

with tf.Session() as sess:
    print("相加: ", sess.run(add, feed_dict={a:3, b:2}))
    print("相乘: ", sess.run(mul, feed_dict={a:4, b:6}))

構建session的其他方法

交互式的session方式

通常是在交互的環境下使用,具體的用法和with session類似,代碼如下:

sess = tf.InteractiveSession()

Supervisor方式:這種方法可能會更高級些,使用的時候也更加的復雜,可以自動的管理session中的具體任務,比如,載入/載出檢查點文件,寫入tensorboard等,另外該方式還支持分布式的訓練任務部署。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM