Python 如何使用tf.constant或numpy数组初始化tf.Variable?
我正在尝试初始化Python 如何使用tf.constant或numpy数组初始化tf.Variable?,python,numpy,tensorflow,global-variables,Python,Numpy,Tensorflow,Global Variables,我正在尝试初始化tf.InteractiveSession()中的tf.Variable()。我已经有一些预先训练好的权重,它们是单独的numpy文件。如何使用这些numpy值有效地初始化变量 我经历了以下几种选择: 使用tf.assign() 在tf.Variable()创建过程中直接使用sess.run() 这些值似乎没有正确初始化。 以下是我尝试过的一些代码。让我知道哪个是正确的 def read_numpy(file): return np.fromfile(file,dtype
tf.InteractiveSession()
中的tf.Variable()
。我已经有一些预先训练好的权重,它们是单独的numpy
文件。如何使用这些numpy
值有效地初始化变量
我经历了以下几种选择:
tf.assign()
tf.Variable()创建过程中直接使用sess.run()
def read_numpy(file):
return np.fromfile(file,dtype='f')
def build_network():
with tf.get_default_graph().as_default():
x = tf.Variable(tf.constant(read_numpy('foo.npy')),name='var1')
sess = tf.get_default_session()
with sess.as_default():
sess.run(tf.global_variables_initializer())
sess = tf.InteractiveSession()
with sess.as_default():
build_network()
这是正确的方法吗?我已经打印了会话
对象,它与整个过程中使用的会话相同
编辑:当前似乎使用sess.run(tf.global\u variables\u initializer())
调用随机初始化optf.Variable()
接受numpy数组作为初始值:
将tensorflow导入为tf
将numpy作为np导入
init=np.one((2,2))
x=tf.Variable(init)#可以使用tf.get_Variable()
。。我用了它,它成功了。我有一个属性为initializer=tf.constant(read_numpy('foo.npy'))
Yes,您可以。tf.Variable()
和tf.get_Variable()
之间的区别在于tf.Variable()
创建一个新变量,而get_Variable()
可以创建一个新变量或返回一个现有变量。更多阅读答案哦,好吧,我第一次使用tf.get_variable()
时确实遇到了一个错误,因为命名冲突。。但后来我将其包含在tf.variable\u scope()中,并对其进行了处理。谢谢你的回复!很高兴这有帮助。我仍然会使用x=tf.Variable(read_numpy('foo.npy'))
。这样比较短。