2016-08-15 110 views
0

我试图建立一个带有2个隐藏层和3个输出类的简单MLP。 我在模型中所做的是:MLP给出不准确的结果

  • 输入图像为120×120的RGB图像。扁平尺寸大小的(3 * 120 * 120)

  • 2隐藏层100

  • RELU激活用于

  • 输出层具有3个神经元

代码
def model(input, weights, biases): 

    l_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) 
    l_1 = tf.nn.relu(l_1) 

    l_2 = tf.add(tf.matmul(l_1, weights['h2']), biases['b2']) 
    l_2 = tf.nn.relu(l_2) 

    out = tf.matmul(l_2, weights['out']) + biases['out'] 
    return out 

优化器

pred = model(input_batch, weights, biases) 
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y)) 
optimizer = tf.train.GradientDescentOptimizer(rate).minimize(cost) 

该模型不起作用。精确度仅等于随机模型的精确度。 下面的例子是这一个: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py

+0

您使用了多少训练数据?训练了多久?训练停止后的损失值是多少? –

回答

0

你有一个复制粘贴错字def model。第一个参数名称是input,而下一行是x

当您怀疑该模型未受训时使用的另一个诀窍是一次又一次地在同一批次上运行它。如果实施是正确的,并且模型正在接受培训,那么很快就会逐步了解到批量生产100%的准确性。如果没有,那么它就是一个指示,表明你的实现有些问题。