W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
定義在:tensorflow/python/ops/variable_scope.py
請(qǐng)參閱指南:變量>共享變量
用于定義創(chuàng)建變量(層)的操作的上下文管理器.
此上下文管理器驗(yàn)證(可選)values是否來自同一圖形,確保圖形是默認(rèn)的圖形,并推送名稱范圍和變量范圍.
如果name_or_scope不是None,則使用as is.如果scope是None,則使用default_name.在這種情況下,如果以前在同一范圍內(nèi)使用過相同的名稱,則通過添加_N來使其具有唯一性.
變量范圍允許您創(chuàng)建新變量并共享已創(chuàng)建的變量,同時(shí)提供檢查以防止意外創(chuàng)建或共享.在本文中我們提供了幾個(gè)基本示例.
示例1-如何創(chuàng)建一個(gè)新變量:
with tf.variable_scope("foo"):
with tf.variable_scope("bar"):
v = tf.get_variable("v", [1])
assert v.name == "foo/bar/v:0"
示例2-共享變量AUTO_REUSE:
def foo():
with tf.variable_scope("foo", reuse=tf.AUTO_REUSE):
v = tf.get_variable("v", [1])
return v
v1 = foo() # Creates v.
v2 = foo() # Gets the same, existing v.
assert v1 == v2
示例3-使用reuse=True共享變量:
with tf.variable_scope("foo"):
v = tf.get_variable("v", [1])
with tf.variable_scope("foo", reuse=True):
v1 = tf.get_variable("v", [1])
assert v1 == v
示例4-通過捕獲范圍并設(shè)置重用來共享變量:
with tf.variable_scope("foo") as scope:
v = tf.get_variable("v", [1])
scope.reuse_variables()
v1 = tf.get_variable("v", [1])
assert v1 == v
為了防止意外共享變量,我們在獲取非重用范圍中的現(xiàn)有變量時(shí)引發(fā)異常.
with tf.variable_scope("foo"):
v = tf.get_variable("v", [1])
v1 = tf.get_variable("v", [1])
# Raises ValueError("... v already exists ...")
同樣,我們在嘗試獲取重用模式中不存在的變量時(shí)引發(fā)異常.
with tf.variable_scope("foo", reuse=True):
v = tf.get_variable("v", [1])
# Raises ValueError("... v does not exists ...")
請(qǐng)注意,reuse(重用)標(biāo)志是有繼承性的:如果我們打開一個(gè)重用范圍,那么它的所有子范圍也會(huì)重用.
關(guān)于名稱范圍的說明:設(shè)置reuse不會(huì)影響其他操作(如多重)的命名.
請(qǐng)注意,1.0版本開始(包含)允許(雖然明確勸阻)將False傳遞給重用參數(shù),從而產(chǎn)生與None無關(guān)的未記錄行為.從1.1.0版本開始傳遞None和False作為重用具有完全相同的效果.
__init__(
name_or_scope,
default_name=None,
values=None,
initializer=None,
regularizer=None,
caching_device=None,
partitioner=None,
custom_getter=None,
reuse=None,
dtype=None,
use_resource=None,
constraint=None,
auxiliary_name_scope=True
)
用于初始化上下文管理器.
參數(shù):
返回值:
返回可以捕獲和重用的范圍.
可能引發(fā)的異常:
__enter__()
__exit__(
type_arg,
value_arg,
traceback_arg
)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: