我想在Tensorflow中为一批示例运行一些优化过程,并且我已经对这些变量进行了一些原始估计以进行优化。所以我想用这些估计值初始化变量,而不是一些随机数或零。
所以我想知道我该怎么做?请注意,初始化值取决于样本。我的计划是将初始化提供给某个占位符,然后从该占位符初始化变量,但这不起作用。
答案 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_value
是tf.placeholder
,它将以numpy数组的形式包含您的猜测。
然后你做一个简单的事情
sess.run(update_estimates, feed_dict={estimated_value:numpy_array})
。
tf.get_variable()
可能非常有用,但对于初学者,我会反对它。