欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

tf.variable_scope与tf.tf.get_variable

发布时间:2025/3/19 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 tf.variable_scope与tf.tf.get_variable 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

实验一、 不设置随机种子,使用不同的初始化方法

import tensorflow as tf; import numpy as np; import matplotlib.pyplot as plt; with tf.variable_scope("test"):a1 = tf.get_variable(name='a1', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))a2 = tf.get_variable(name='a2', shape=[1], initializer=tf.constant_initializer(1))a3 = tf.get_variable(name='a3', shape=[2,3], initializer=tf.ones_initializer())with tf.Session() as sess:sess.run(tf.initialize_all_variables())print(sess.run(a1))print(sess.run(a2))print(sess.run(a3))

输出结果: 

[[ 0.53831905 -0.48800603  0.80798125]
 [-1.9583933  -0.01016556 -0.9655879 ]]
[1.]
[[1. 1. 1.]
 [1. 1. 1.]]

 

实验二、 不设置随机种子,使用相同的初始化方法

import tensorflow as tf; import numpy as np; import matplotlib.pyplot as plt; with tf.variable_scope("tes1t", initializer=tf.random_normal_initializer(mean=0, stddev=1)):a1 = tf.get_variable(name='a1', shape=[2,3])a2 = tf.get_variable(name='a2', shape=[1])a3 = tf.get_variable(name='a3', shape=[2,3])with tf.Session() as sess:sess.run(tf.initialize_all_variables())print(sess.run(a1))print(sess.run(a2))print(sess.run(a3))

输出结果: 

[[-0.4393101  -0.3091908   0.09686434]
 [-0.06059294 -0.7490989  -0.49343875]]
[-0.21072532]
[[ 0.03515918 -1.1747551   1.6267052 ]
 [ 0.5114391  -0.2678874   1.7599828 ]]

实验一与实验二生成的数据完全不同;因为随机性存在;

实验三、使用相同的初始化方法与随机种子

import tensorflow as tf; import numpy as np; import matplotlib.pyplot as plt; with tf.variable_scope("tes1t1", initializer=tf.random_normal_initializer(mean=0, stddev=1,seed=1234)):a1 = tf.get_variable(name='a1', shape=[2,3])a2 = tf.get_variable(name='a2', shape=[1])a3 = tf.get_variable(name='a3', shape=[2,3])with tf.Session() as sess:sess.run(tf.initialize_all_variables())print(sess.run(a1))print(sess.run(a2))print(sess.run(a3))

[[ 0.51340485 -0.255814    0.6519913 ]
 [ 1.3923638   0.37256798  0.20336303]]
[0.51340485]
[[ 0.51340485 -0.255814    0.6519913 ]
 [ 1.3923638   0.37256798  0.20336303]]

实验三表明:使用了相同的初始化方法与随机种子,a1,a2,a3的第一个数完全相同,a1与a3完全相同,可以得出结论随机序列就完全固定了,即第一个数的值,第二个数的值直到第N个

import tensorflow as tf; import numpy as np; import matplotlib.pyplot as plt; with tf.variable_scope("tes1t12", initializer=tf.random_normal_initializer(mean=0, stddev=1,seed=1234)):a1 = tf.get_variable(name='a1', shape=[2,3])a2 = tf.get_variable(name='a2', shape=[1])a3 = tf.get_variable(name='a3', shape=[2,3])with tf.Session() as sess:sess.run(tf.initialize_all_variables())print(sess.run(a1))print(sess.run(a2))print(sess.run(a3))

[[ 0.51340485 -0.255814    0.6519913 ]
 [ 1.3923638   0.37256798  0.20336303]]
[0.51340485]
[[ 0.51340485 -0.255814    0.6519913 ]
 [ 1.3923638   0.37256798  0.20336303]]

使用variable_scope变量与seed种子可复现同样的随机初始化;本质来说,其参数初始值完全相同

总结

以上是生活随笔为你收集整理的tf.variable_scope与tf.tf.get_variable的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。