最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量

 更新時間:2018年03月10日 10:23:40   投稿:lijiao  
這篇文章主要為大家詳細介紹了tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下

環(huán)境:Ubuntu14.04,tensorflow=1.4(bazel源碼安裝),Anaconda python=3.6

聲明變量主要有兩種方法:tf.Variabletf.get_variable,二者的最大區(qū)別是:

(1) tf.Variable是一個類,自帶很多屬性函數(shù);而 tf.get_variable是一個函數(shù);
(2) tf.Variable只能生成獨一無二的變量,即如果給出的name已經(jīng)存在,則會自動修改生成新的變量name;
(3) tf.get_variable可以用于生成共享變量。默認情況下,該函數(shù)會進行變量名檢查,如果有重復則會報錯。當在指定變量域中聲明可

以變量共享時,可以重復使用該變量(例如RNN中的參數(shù)共享)。
下面給出簡單的的示例程序:

import tensorflow as tf

with tf.variable_scope('scope1',reuse=tf.AUTO_REUSE) as scope1:
  x1 = tf.Variable(tf.ones([1]),name='x1')
  x2 = tf.Variable(tf.zeros([1]),name='x1')
  y1 = tf.get_variable('y1',initializer=1.0)
  y2 = tf.get_variable('y1',initializer=0.0)
  init = tf.global_variables_initializer()
  with tf.Session() as sess:
    sess.run(init)
    print(x1.name,x1.eval())
    print(x2.name,x2.eval())
    print(y1.name,y1.eval())
    print(y2.name,y2.eval())

輸出結果為:

scope1/x1:0 [ 1.]
scope1/x1_1:0 [ 0.]
scope1/y1:0 1.0
scope1/y1:0 1.0

1. tf.Variable(…)

tf.Variable(…)使用給定初始值來創(chuàng)建一個新變量,該變量會默認添加到 graph collections listed in collections, which defaults to [GraphKeys.GLOBAL_VARIABLES]。

如果trainable屬性被設置為True,該變量同時也會被添加到graph collection GraphKeys.TRAINABLE_VARIABLES.

# tf.Variable
__init__(
  initial_value=None,
  trainable=True,
  collections=None,
  validate_shape=True,
  caching_device=None,
  name=None,
  variable_def=None,
  dtype=None,
  expected_shape=None,
  import_scope=None,
  constraint=None
)

2. tf.get_variable(…)

tf.get_variable(…)的返回值有兩種情形:

使用指定的initializer來創(chuàng)建一個新變量;
當變量重用時,根據(jù)變量名搜索返回一個由tf.get_variable創(chuàng)建的已經(jīng)存在的變量;

get_variable(
  name,
  shape=None,
  dtype=None,
  initializer=None,
  regularizer=None,
  trainable=True,
  collections=None,
  caching_device=None,
  partitioner=None,
  validate_shape=True,
  use_resource=None,
  custom_getter=None,
  constraint=None
)

3. 根據(jù)名稱查找變量

在創(chuàng)建變量時,即使我們不指定變量名稱,程序也會自動進行命名。于是,我們可以很方便的根據(jù)名稱來查找變量,這在抓取參數(shù)、finetune模型等很多時候都很有用。

示例1:

通過在tf.global_variables()變量列表中,根據(jù)變量名進行匹配搜索查找。 該種搜索方式,可以同時找到由tf.Variable或者tf.get_variable創(chuàng)建的變量。

import tensorflow as tf

x = tf.Variable(1,name='x')
y = tf.get_variable(name='y',shape=[1,2])
for var in tf.global_variables():
  if var.name == 'x:0':
    print(var)

示例2:

利用get_tensor_by_name()同樣可以獲得由tf.Variable或者tf.get_variable創(chuàng)建的變量。
需要注意的是,此時獲得的是Tensor, 而不是Variable,因此 x不等于x1.

import tensorflow as tf

x = tf.Variable(1,name='x')
y = tf.get_variable(name='y',shape=[1,2])

graph = tf.get_default_graph()

x1 = graph.get_tensor_by_name("x:0")
y1 = graph.get_tensor_by_name("y:0")

示例3:

針對tf.get_variable創(chuàng)建的變量,可以利用變量重用來直接獲取已經(jīng)存在的變量。

with tf.variable_scope("foo"):
  bar1 = tf.get_variable("bar", (2,3)) # create

with tf.variable_scope("foo", reuse=True):
  bar2 = tf.get_variable("bar") # reuse

with tf.variable_scope("", reuse=True): # root variable scope
  bar3 = tf.get_variable("foo/bar") # reuse (equivalent to the above)

print((bar1 is bar2) and (bar2 is bar3))

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Pandas空值處理全攻略

    Pandas空值處理全攻略

    在進行數(shù)據(jù)分析和建模時,空值的存在會給結果帶來很大影響,本文主要介紹了Pandas空值處理全攻略,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • python中time包實例詳解

    python中time包實例詳解

    在本篇文章里小編給大家整理的是一篇關于python中time包實例詳解內(nèi)容,對此有興趣的朋友們可以學習下。
    2021-02-02
  • pymysql模塊的使用(增刪改查)詳解

    pymysql模塊的使用(增刪改查)詳解

    這篇文章主要介紹了pymysql模塊的使用(增刪改查)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 深入淺出分析Python裝飾器用法

    深入淺出分析Python裝飾器用法

    這篇文章主要介紹了Python裝飾器用法,結合實例形式對比分析了Python裝飾器的定義與使用技巧,需要的朋友可以參考下
    2017-07-07
  • 跟老齊學Python之字典,你還記得嗎?

    跟老齊學Python之字典,你還記得嗎?

    在python中,也有一種數(shù)據(jù)與此相近,不僅相近,這種數(shù)據(jù)的名稱就叫做dictionary,翻譯過來是字典,類似于前面的int/str/list,這種類型數(shù)據(jù)名稱是:dict
    2014-09-09
  • Python運行不顯示DOS窗口的解決方法

    Python運行不顯示DOS窗口的解決方法

    今天小編就為大家分享一篇Python運行不顯示DOS窗口的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 模型訓練時GPU利用率太低的原因及解決

    模型訓練時GPU利用率太低的原因及解決

    這篇文章主要介紹了模型訓練時GPU利用率太低的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python將pandas datarame保存為txt文件的實例

    python將pandas datarame保存為txt文件的實例

    今天小編就為大家分享一篇python將pandas datarame保存為txt文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python爬蟲之自動登錄與驗證碼識別

    python爬蟲之自動登錄與驗證碼識別

    這篇文章主要為大家詳細介紹了python爬蟲之自動登錄與驗證碼識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python推導式之字典推導式和集合推導式使用體驗

    Python推導式之字典推導式和集合推導式使用體驗

    這篇文章主要為大家介紹了Python推導式之字典推導式和集合推導式使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06

最新評論

达拉特旗| 盐城市| 驻马店市| 建湖县| 平塘县| 米泉市| 乐都县| 石泉县| 岑巩县| 辉县市| 元阳县| 文登市| 娱乐| 宜川县| 肇庆市| 县级市| 开平市| 余江县| 龙川县| 阿坝| 元阳县| 黎城县| 泸溪县| 龙口市| 大冶市| 全南县| 平遥县| 通州区| 贵港市| 洛浦县| 湛江市| 仙游县| 台江县| 天津市| 阜城县| 民县| 德令哈市| 永新县| 海口市| 南召县| 日喀则市|