【发布时间】:2018-08-28 19:38:03
【问题描述】:
我使用 TensorFlow 实现了具有一个隐藏层的多层感知器 (MLP),并在调用该函数时出现以下错误。任何帮助将不胜感激。
def MLP(x, option, dropout=1, prefix ='', num_outputs=1, reuse=None):
weights = tf.random_uniform_initializer(-0.001, 0.001)
biases = tf.constant_initializer(0.001, dtype=tf.float32)
fc1 = tf.contrib.layers.fully_connected(tf.nn.dropout(x, keep_prob=dropout),
num_outputs=option.num_outputs,
biases_initializer=biases,
weights_initializer = weights,
activation_fn=tf.nn.relu,
scope=prefix + 'fc',
reuse=reuse)
logits = tf.contrib.layers.linear(tf.nn.dropout(fc1, keep_prob=dropout),
num_outputs=num_outputs,
biases_initializer=biases,
weights_initializer = weights,
scope=prefix + 'l',
reuse=reuse)
return logits
logits = MLP(x, option, dropout=dp, prefix='mlp-', reuse=True)
ValueError:变量 mlp-fc/weights 不存在,或者不是使用 tf.get_variable() 创建的。您的意思是在 VarScope 中设置 reuse=tf.AUTO_REUSE 吗?
我尝试初始化权重并设置 weights_initializer 但仍然遇到同样的错误。
【问题讨论】:
标签: python tensorflow neural-network