2016-08-15 4 views
0

Я попытался построить простой MLP с двумя скрытыми слоями и 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

+0

Сколько учебных данных вы используете, как долго вы тренируетесь и какова была потеря после окончания тренировки? –

ответ

0

У вас есть копировать-вставить опечатка в def model. Имя первого аргумента - input, а на следующей строке - x.

Еще один трюк для использования, когда вы подозреваете, что модель не обучается, - это снова и снова запускать ее в одной партии. Если реализация правильная, и модель готовится, она скоро узнает, что партия по сердцу дает 100% -ную точность. Если это не так, то это показатель того, что что-то не так в вашей реализации.

Смежные вопросы