如何在Tensorflow中动态初始化变量?

时间:2017-08-28 15:04:48

标签: tensorflow

我想在Tensorflow中为一批示例运行一些优化过程,并且我已经对这些变量进行了一些原始估计以进行优化。所以我想用这些估计值初始化变量,而不是一些随机数或零。

所以我想知道我该怎么做?请注意,初始化值取决于样本。我的计划是将初始化提供给某个占位符,然后从该占位符初始化变量,但这不起作用。

2 个答案:

答案 0 :(得分:1)

我相信这对你的问题来说是一个好的开始:

import numpy as np
import tensorflow as tf

#This should be your raw estimation for the variables.
#Here I am using random numers as an example.
estimated_raw = np.random.uniform(-1,1,[2,3])

#This trainable variable will be initialized with estimated_raw
var = tf.get_variable('var', initializer=estimated_raw)

# Testing if everything is ok
with tf.Session() as sess:
  var.initializer.run()
  print(var.eval())

通过这种方式,您可以使用估计初始化变量。优化器将进一步发展。

答案 1 :(得分:1)

定义操作update_estimates = tf.assign(variable,estimated_value),其中estimated_valuetf.placeholder,它将以numpy数组的形式包含您的猜测。

然后你做一个简单的事情 sess.run(update_estimates, feed_dict={estimated_value:numpy_array})

tf.get_variable()可能非常有用,但对于初学者,我会反对它。