tensorflow 共享變數

2021-09-02 07:39:38 字數 1148 閱讀 8280

import tensorflow as tf

#設定隨機種子,使得每次隨機初始化都一樣

tf.set_random_seed(1234)

#這是我們要共享的變數函式

def share_variable(input):

weight=tf.get_variable("weight",[2,2])

return weight

#定義乙個輸入

input=tf.get_variable("input",[3,2])

#第一次使用

with tf.variable_scope("hello"):

weight1=share_variable(input)

#第二次使用,但是沒有reuse引數,而是rebuild引數

with tf.variable_scope("nohello"):

weight2=share_variable(input)

#第三次使用,設定reuse=true,使用第一次使用的引數

with tf.variable_scope("hello",reuse=true):

weight3 = share_variable(input)

with tf.session() as sess:

#初始化變數

initia=tf.global_variables_initializer()

sess.run(initia)

print(sess.run(weight1))

#第一次的引數輸出結果:

#[[ 0.8520416 -0.92069757]

#[ 1.0747026 0.05705893]]

print(sess.run(weight2))

#第二次引數輸出結果:

#[[-0.20162821 0.6593205 ]

#[ 0.22376633 -1.188595 ]]

print(sess.run(weight3))

#第三次引數輸出結果:

#[[ 0.8520416 -0.92069757]

#[ 1.0747026 0.05705893]]

#我們可以看到第三次和第一次的引數是一樣的

Tensorflow共享變數

使用variable宣告變數,同名變數的name後會自動加 1,可以賦初始值,但是需要在session初始化後才會生效。import tensorflow as tf var1 tf.variable 1.0,name firstvar print var1 var1.name var1 tf.va...

Tensorflow 變數的共享

tensorflow exp example sparse tensor classification train validate.py 當你需要train的過程中validate的時候,如果用placeholder來接收輸入資料 那麼乙個compute graph可以完成這個任務。如果你用的是t...

Tensorflow共享變數機制

我們定義變數通常使用tf.variable 的方式進行建立變數,但在某種情況下,乙個模型需要使用其他模型建立的變數,兩個模型一起訓練。比如 對抗網路中的生成器模型和判別器模型。如果使用variable進行建立,那麼得到的是乙個新的變數,而非原來的變數。這時就需引入共享變數解決問題。使用tf.vari...