Tensorflow |(3)變量的的創建、初始化、保存和加載

      網友投稿 864 2025-04-04

      Tensorflow |(1)初識Tensorflow

      Tensorflow |(2)張量的階和數據類型及張量操作

      Tensorflow |(3)變量的的創建、初始化、保存和加載

      變量的的創建、初始化、保存和加載

      其實變量的作用在語言中相當,都有存儲一些臨時值的作用或者長久存儲。在Tensorflow中當訓練模型時,用變量來存儲和更新參數。變量包含張量(Tensor)存放于內存的緩存區。建模時它們需要被明確地初始化,模型訓練后它們必須被存儲到磁盤。值可在之后模型訓練和分析是被加載。

      Variable類

      tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)

      創建一個帶值的新變量initial_value

      initial_value:A Tensor或Python對象可轉換為a Tensor.變量的初始值.必須具有指定的形狀,除非 validate_shape設置為False.

      trainable:如果True,默認值也將該變量添加到圖形集合GraphKeys.TRAINABLE_VARIABLES,該集合用作Optimizer類要使用的變量的默認列表

      collections:圖表集合鍵列表,新變量添加到這些集合中.默認為[GraphKeys.VARIABLES]

      validate_shape:如果False允許使用未知形狀的值初始化變量,如果True,默認形狀initial_value必須提供.

      name:變量的可選名稱,默認'Variable'并自動獲取

      變量的創建

      創建當一個變量時,將你一個張量作為初始值傳入構造函數Variable().TensorFlow提供了一系列操作符來初始化張量,值初始的英文常量或是隨機值。像任何一樣Tensor,創建的變量Variable()可以用作圖中其他操作的輸入。此外,為Tensor該類重載的所有運算符都被轉載到變量中,因此您也可以通過對變量進行算術來將節點添加到圖形中。

      x = tf.Variable(5.0,name="x")

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

      biases = tf.Variable(tf.zeros([200]), name="biases")

      調用tf.Variable()向圖中添加了幾個操作:

      一個variable op保存變量值。

      初始化器op將變量設置為其初始值。這實際上是一個tf.assign操作。

      初始值的ops,例如 示例中biases變量的zeros op 也被添加到圖中。

      變量的初始化

      變量的初始化必須在模型的其它操作運行之前先明確地完成。最簡單的方法就是添加一個給所有變量初始化的操作,并在使用模型之前首先運行那個操作。最常見的初始化模式是使用便利函數 initialize_all_variables()將Op添加到初始化所有變量的圖形中。

      init_op = tf.global_variables_initializer()

      with tf.Session() as sess:

      sess.run(init_op)

      還可以通過運行其初始化函數op來初始化變量,從保存文件還原變量,或者簡單地運行assign向變量分配值的Op。實際上,變量初始化器op只是一個assignOp,它將變量的初始值賦給變量本身。assign是一個方法,后面方法的時候會提到

      with tf.Session() as sess:

      sess.run(w.initializer)

      通過另一個變量賦值

      你有時候會需要用另一個變量的初始化值給當前變量初始化,由于tf.global_variables_initializer()初始化所有變量,所以需要注意這個方法的使用。

      就是將已初始化的變量的值賦值給另一個新變量!

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

      w2 = tf.Variable(weights.initialized_value(), name="w2")

      w_twice = tf.Variable(weights.initialized_value() * 0.2, name="w_twice")

      所有變量都會自動收集到創建它們的圖形中。默認情況下,構造函數將新變量添加到圖形集合GraphKeys.GLOBAL_VARIABLES。方便函數 global_variables()返回該集合的內容。

      屬性

      name

      返回變量的名字

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

      print(weights.name)

      op

      返回op操作

      weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35))

      print(weights.op)

      方法

      assign

      為變量分配一個新值。

      x = tf.Variable(5.0,name="x")

      w.assign(w + 1.0)

      eval

      在會話中,計算并返回此變量的值。這不是一個圖形構造方法,它不會向圖形添加操作。方便打印結果

      v = tf.Variable([1, 2])

      init = tf.global_variables_initializer()

      with tf.Session() as sess:

      sess.run(init)

      Tensorflow |(3)變量的的創建、初始化、保存和加載

      # 指定會話

      print(v.eval(sess))

      # 使用默認會話

      print(v.eval())

      變量的靜態形狀與動態形狀

      TensorFlow中,張量具有靜態(推測)形狀和動態(真實)形狀

      靜態形狀:

      創建一個張量或者由操作推導出一個張量時,初始狀態的形狀

      tf.Tensor.get_shape:獲取靜態形狀

      tf.Tensor.set_shape():更新Tensor對象的靜態形狀,通常用于在不能直接推斷的情況下

      動態形狀:

      一種描述原始張量在執行過程中的一種形狀

      tf.shape(tf.Tensor):如果在運行的時候想知道None到底是多少,只能通過tf.shape(tensor)[0]這種方式來獲得

      tf.reshape:創建一個具有不同動態形狀的新張量

      要點

      1、轉換靜態形狀的時候,1-D到1-D,2-D到2-D,不能跨階數改變形狀

      2、 對于已經固定或者設置靜態形狀的張量/變量,不能再次設置靜態形狀

      3、tf.reshape()動態創建新張量時,元素個數不能不匹配

      4、運行時候,動態獲取張量的形狀值,只能通過tf.shape(tensor)[]

      管理圖中收集的變量

      tf.global_variables()

      返回圖中收集的所有變量

      weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35))

      print(tf.global_variables())

      TensorFlow

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:啟動ERP項目的四個技巧
      下一篇:檔案管理系統軟件的優勢及功能,檔案軟件管理系統哪家好?
      相關文章
      亚洲美女免费视频| 国产精品日本亚洲777| 国产亚洲精品高清在线| 国产成人精品亚洲| 在线观看亚洲精品专区| 亚洲精华液一二三产区| 亚洲国产AV无码一区二区三区| 亚洲精品色播一区二区| 亚洲精品第一国产综合亚AV| 亚洲精品无播放器在线播放| 久久亚洲精品11p| 亚洲福利精品电影在线观看| 亚洲精品无码久久久| 亚洲午夜国产片在线观看| 久久亚洲av无码精品浪潮| 在线亚洲精品福利网址导航| 国产亚洲精久久久久久无码| 亚洲gv白嫩小受在线观看| 亚洲国产精品国自产拍电影| 亚洲色图在线观看| 在线观看亚洲人成网站| 亚洲国产精品综合久久2007| 亚洲av无码一区二区三区天堂古代 | 亚洲天堂2017无码中文| 亚洲一区二区三区不卡在线播放| 亚洲日本人成中文字幕| 亚洲精品第一国产综合亚AV| 亚洲XX00视频| 亚洲免费观看视频| 色婷婷亚洲十月十月色天| 亚洲日本在线观看网址| 在线精品亚洲一区二区| 毛片亚洲AV无码精品国产午夜 | 久久亚洲国产成人精品性色| 亚洲国产成人综合| 亚洲av最新在线观看网址| 亚洲国产高清在线一区二区三区| 中文字幕精品亚洲无线码一区| 亚洲乱码中文字幕综合| 亚洲视频在线观看地址| 亚洲综合成人婷婷五月网址|