【引言】TensorFlow中的命名域是非常重要的概念,涉及到參數共享,方便命名參數管理,定義圖結構
本文主要介紹name_scope 和 variable_scope,slim包中的arg_scope暫不介紹。
1. 首先看看比較簡單的tf.name_scope(‘scope_name’)
總結:name_scope常配合tf.Variable一起使用,表示一個name域下的不同變量(name域可理解爲一個網絡或網絡層),當創建的name域相同且不使用reuse時,系統會自動創建新的name域,並附帶下標 _1 _2 等
2.下面來看看 tf.variable_scope(‘scope_name’)
總結:當variable_scope相同時 且reuse時,域中的變量get_variable中的變量名name相同時,表示指向同一個內存對象
總結:
1 使用tf.Variable(name)方式創建變量時,name可以相同,系統會自動在name後附帶下標
2 使用tf.get_variable(name)方式創建變量時,name如果相同,則一定要用reuse,否則會報錯。使用reuse後,建立name相同的兩個變量其實是在內存中是同一地址。