TensorFlow(1)-模型相關基礎概念

TensorFlow-1

  • 1.Graph對象
  • 2.Session對象
  • 3.Variabels變量
  • 4. placeholders與feed_dict
  • 5. tf.train.Saver() 模型參數保存、加載

Tensorflow 中文官網教程–2.0版本的官方教程
TensorFlow教程:TensorFlow快速入門教程(非常詳細)
pytorch Vs tensorflow

Tensorflow來源: 由較低級別的符號計算庫(例如: Theano) 和 較高級別的網絡規范庫(例如:Blocks 和 Lasagne)組合而成。

TensorFlow的劣勢: 1.x API混亂冗余;2.x重點關注tf.keras,棄用其他API。但是1.x 和2.x 的兼容性堪憂。

TensorFlow的計算方式: 創建數據流圖,將數據放入數據流圖中計算。數據流圖中的節點表示數學操作(op:operation),連線表示tensor 流動的通道。每個節點獲得若干個tensor,執行計算后產生若干個tensor。數據流圖在會話(Session)中啟動運行。

import tensorflow as tf

1.Graph對象

計算圖–可以認為是詳細的流程圖,其包括每一步的操作[op]和變量名字。
顯式構建,graph構造函數無需接受任何參數

g = tf.Graph()
with g.as_default():#創建一些OP;它們將被添加到Graph的對象g中a = tf.mul(2,3)

隱式構建,當Tensorflow庫被加載時,它會自動的創建一個Graph對象,并將 其作為默認的數據流圖。獲取默認數據流圖具柄:

default_graph = tf.get_default_graph

2.Session對象

session負責分配資源,計算operation, 得出結果。 Session構造函數可接受3個參數。

  1. target 指定執行引擎,默認值為空字符串。在分布式訓練中,用于連接不同的tf.train.server.
  2. graph 指定將要加載的Graph 對象, 默認值None(使用默認數據流圖)。
  3. config 指定session 對象的配置參數,例如CPU、GPU使用數目、數據流圖優化參數、日志選項等。

使用run 來運行相應的計算操作,得到fetches中的張量值。tf.Session.run()函數返回值為fetches指定的執行結果。如果fetches是一個元素就返回一個值;若fetches是一個list,則返回list的值,若fetches是一個字典類型,則返回和fetches同keys的字典。

session.run( fetches, feed_dict=None, options=None, run_metadata=None)

Session的開啟涉及具體運算,比較消耗資源。在使用結束后,建議關閉Session。
-> 手動關閉關閉session

a = tf.constant(1, dtype=tf.int8)
b = tf.constant(2, dtype=tf.int8)
res= a + b
sess = tf.Session()             # 加載默認數據流圖
sess.run(res)					# 執行運算
sess.close()					# 手動關閉session

->自動關閉session 使用with來限定session 的作用范圍

a = tf.constant(1, dtype=tf.int8)
b = tf.constant(2, dtype=tf.int8)
res= a + b
with tf.Session() as sess:      # 運算結束后session自動關閉sess.run(res)               # 執行運算res.eval()                  # tensor eval() 方法和 sess.run(res)效果一致

參考文檔:TensorFlow中Session的使用

3.Variabels變量

Variabels 類型的參數可通過梯度下降更新、訓練。必須明確的初始化而且可以通過Saver保存到磁盤上。
定義Variabels 類型的參數: 使用tf.Variable(tensor)封裝相應的tensor

weights  = tf.Variable(tf.random_normal([784, 200], stddev=0.35),name="weights")
biases  = tf.Variable(tf.zeros([200]), name="biases")

在graph 中若含有variabels 類型的變量,必須使用在session中顯式調用 初始化函數。
-> 全量variable 初始化 tf.global_variables_initializer()

# 含有tf.Variable的環境下,因為tf中建立的變量是沒有初始化的,
# 在debug時還不是一個tensor,而是一個Variable變量類型
tensor = tf.Variable(tf.random_normal(shape=[10]))
init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)  # initialization variablesprint(sess.run(tensor))

-> 部分variable 初始化 tf.variables_initializer()

var1 = tf.Variable(0,name="initialize_me")
var2 = tf.Variable(1,name="no_initialization")
init = tf.variables_initializer([var1],name="init_var1")
with tf.Session() as sess:sess.run(init)

4. placeholders與feed_dict

tf.placeholder 創建占位符號,比如模型的輸入數據,其只有在訓練與預測時才會有值。賦值時,使用feed_dict 進行賦值操作。

import numpy as np 
x = tf.placeholder(tf.float32, shape=(10, 10))         # 10行10列
y = tf.matmul(x, x) # 矩陣乘
with tf.Session() as sess:  #print(sess.run(y))  # ERROR: 此處x還沒有賦值.  rand_array = np.random.rand(1024, 1024)  print(sess.run(y, feed_dict={x: rand_array}))  # Will succeed.  

5. tf.train.Saver() 模型參數保存、加載

v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
init = tf.initialize_all_variables()
# Add ops to save and restore all the variables.
saver = tf.train.Saver()# Later, launch the model, initialize the variables, do some work, save the variables to disk.
with tf.Session() as sess:sess.run(init)save_path = saver.save(sess, "/tmp/model.ckpt")print "Model saved in file: ", save_path

模型恢復時,variable 不需要初始化

v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
saver = tf.train.Saver()# Later, launch the model, use the saver to restore variables from disk, and
# do some work with the model.
with tf.Session() as sess:saver.restore(sess, "/tmp/model.ckpt")print "Model restored."

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444649.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

memcache的使用入門C++代碼

下載源碼編譯,memcached就是生成的主程序,啟動可指定端口,memcached作為server端,依然是我們熟悉的cs模式,使用兩個client一個setkey,一個getkey一百萬個做測試。 ./memcached -d -m 300 -p 11211 -u root…

leetcode78 子集

給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重復的子集。 示例: 輸入: nums [1,2,3] 輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路&…

Fiddler抓包工具使用

先下載Fiddler 歡迎關注我的新微信公眾號 ipgame,有什么問題可以提供交流的平臺,歡迎大家討論。 電腦最好是筆記本,這樣能和手機保持統一局域網內;其他不多說,直接說步驟了。 一.對PC(筆記本&#xff0…

Tensorboard--模型可視化工具

Tensorboard1.tensorboard in tensorflow1.1 tensorboard的啟動過程1.2 tf.summary 可視化類型1.3 tf.summary 使用demo2.tensorboard in pytorch2.1 SummaryWriter 使用demo12.2 tSummaryWriter 使用demo22.3 tensorboard 數據再讀取tensorboard in tensorflow :te…

opencv findContours 報錯_acrt_first_block == header

報錯_acrt_first_block header 之前一直使用OpenCV3.3VS2015 void AOIAlgorithm::findUnits(Mat& blkGray, vector<vector<cv::Point>> & blkContours) {Mat blkOBW;blur(blkGray, blkGray, cv::Size(5, 5));threshold(blkGray, blkOBW, 0, 255, CV_THR…

TensorFlow(2)-訓練數據載入

tensorflow 訓練數據載入1. tf.data.Dataset2. dataset 創建數據集的方式2.1 tf.data.Dataset.from_tensor_slices()2.2 tf.data.TextLineDataset()2.3 tf.data.FixedLengthRecordDataset()2.4 tf.data.TFRecordDataset()3. dateset 迭代操作iterator3.1 make_one_shot_iterato…

leetcode66. 加一

給定一個由整數組成的非空數組所表示的非負整數&#xff0c;在該數的基礎上加一。 最高位數字存放在數組的首位&#xff0c; 數組中每個元素只存儲單個數字。 你可以假設除了整數 0 之外&#xff0c;這個整數不會以零開頭。 示例 1: 輸入: [1,2,3] 輸出: [1,2,4] 解釋: 輸入…

設備硬件加密方法

在機器視覺或者一些傳統制造業行業里經常牽扯到軟件加密算法,或者一些簡單的加密,比如相機綁定,或者USB接口綁定之類的,那么針對這些硬件設備綁定加密方式,我這里簡單的提供一個方法來實現: 方法很簡單,從設備管理器里查找關心的USB設備,對比PID,VID和全球唯一標識GU…

addr2line 和 tombstone問題分析

做安卓開發的同學對于tombstone問題應該是很熟悉了,但是對于如何排查和分析值得總結和整理的,這篇文章對入門安卓開發的技術來說是個入門指導,同時對安卓開發的中高級開發也有借鑒。 首先我們來說下什么是tombstone : 當一個動態庫(native 程序)開始執行時,系統會注冊…

TensorFlow(3)-與訓練相關的操作

與訓練相關的操作0 gpu版本的tensor flow安裝1. tf.control_dependencies(update_ops)0 gpu版本的tensor flow安裝 cuda10.2 conda create -n py27 python2.7 conda activate py27 pip install tensorflow1.14.0 驗證 gpu版本的tensor可用 import tensorflow as tf print(tf.t…

leetcode14. 最長公共前綴

編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴&#xff0c;返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar",&quo…

Android在子線程里使用Toast報錯Can't toast on a thread that has not called Looper.prepare()

在接android SDK的時候有時候為了方便debug調試查看&#xff0c;通過Toast輸出相關信息&#xff0c; 實際上這個是在子線程中輸出的&#xff0c;在logcat里查看有如下報錯java.lang.RuntimeException: Cant toast on a thread that has not called Looper.prepare()。 解決辦法…

虛擬機安裝windows2012和虛擬機安裝國產系統deepin

虛擬機安裝windows2012和虛擬機安裝國產系統deepin 一.安裝windows20121.安裝VMWare虛擬機2.1.注意點一&#xff1a;VMWare虛擬網卡2.2.注意點二&#xff1a;配置虛擬網絡編輯器3.安裝配置Windows Server 2012 R2 二.虛擬機安裝deepin1.deepin官網下載ios鏡像2.deepin下載合適的…

leetcode876 鏈表中間的結點

給定一個帶有頭結點 head 的非空單鏈表&#xff0c;返回鏈表的中間結點。 如果有兩個中間結點&#xff0c;則返回第二個中間結點。 示例 1&#xff1a; 輸入&#xff1a;[1,2,3,4,5] 輸出&#xff1a;此列表中的結點 3 (序列化形式&#xff1a;[3,4,5]) 返回的結點值為 3 。 …

TensorFlow(4)-TFRecord

TFRecord1. tf.train.Example1.1 tfrecord 數據范式轉化1.2 demo 數據集構建2. TFRecord 讀寫2.1 寫入1-tf.io.TFRecordWriter()2.3 讀取-tf.data.TFRecordDataset()2.3 data -> dataset -> 存儲-tf.data.experimental.TFRecordWriter()tfrecord 用于存儲二進制序列數據的…

Playfab開發(一)如何調用PlayFab接口

本人從事海外游戲制作和發行,參與了不少海外研發團隊studio的項目,這里我將個人接觸到的一些使用Playfab開發的項目心得分享給大家。 PlayFab簡介 playfab是一家主要為游戲開發人員提供游戲開發和管理的跨平臺工具及服務的公司, PlayFab正在構建當今游戲所需的所有基于云的…

PlayFab(二)如何通過Demo應用來進一步熟悉Playfab

有時候剛開始接觸新的平臺會兩眼一麻黑,不過這個文章希望能給讀者一些啟示,Playfab默認會給開發者提供一個應用,這里我暫且叫他”我的游戲“; 我通過官網提供的DEMO測試地址: https://www.vanguardoutrider.com/#/ 來為該應用配置服務器。 如果你是第一次進入這個頁面想為…

leetcode718 最長重復子數組

給兩個整數數組 A 和 B &#xff0c;返回兩個數組中公共的、長度最長的子數組的長度。 示例 1: 輸入: A: [1,2,3,2,1] B: [3,2,1,4,7] 輸出: 3 解釋: 長度最長的公共子數組是 [3, 2, 1]。 說明: 1 < len(A), len(B) < 1000 0 < A[i], B[i] < 100 思路&#xf…

PaperNotes(20)-TGAN-DeliGAN

GAN的文章2篇1.從RS-GAN說起2.TGANAbstract1 Reviews of GANs2.3 Relate to Turing Test3 Related Works4 Experiments4.1 Design of Discriminator5.Conclusion3 DeliGANAbstract1. Introduction2. Related Work3.GAN4.本文方法5.實驗5.1. Modified Inception Score5.2. Toy D…

ubuntu apache配置負載均衡篇(一)

首先下載apache2服務器 apt-get install apache2 使得代理生效: a2enmod proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http 修改配置 sudo vi /etc/apache2/mods-enabled/proxy.conf ProxyRequests Off <Proxy *> Order deny,allow Deny …