【发布时间】:2016-12-30 22:21:45
【问题描述】:
我的 TensorFlow 模型使用 tf.random_uniform 来初始化变量。我想在开始训练时指定范围,所以我为初始化值创建了一个占位符。
init = tf.placeholder(tf.float32, name="init")
v = tf.Variable(tf.random_uniform((100, 300), -init, init), dtype=tf.float32)
initialize = tf.initialize_all_variables()
我在训练开始时像这样初始化变量。
session.run(initialize, feed_dict={init: 0.5})
这给了我以下错误:
ValueError: initial_value must have a shape specified: Tensor("Embedding/random_uniform:0", dtype=float32)
我无法确定要传递给tf.placeholder 的正确shape 参数。我认为对于标量我应该做init = tf.placeholder(tf.float32, shape=0, name="init") 但这会产生以下错误:
ValueError: Incompatible shapes for broadcasting: (100, 300) and (0,)
如果我在对tf.random_uniform 的调用中将init 替换为文字值0.5,它会起作用。
如何通过提要字典传递这个标量初始值?
【问题讨论】:
标签: python machine-learning tensorflow