机器学习-给出不准确结果的MLP



我试着用2个隐藏层和3个输出类构建一个简单的MLP。我在模型中所做的是:

  • 输入图像为120x120 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

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

当你怀疑模型没有被训练时,可以使用的另一个技巧是在同一批数据上一次又一次地运行它。如果实现是正确的,并且模型正在接受训练,它很快就会记住批次,产生100%的准确率。

最新更新