2016-08-15 112 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%的準確性。如果沒有,那麼它就是一個指示,表明你的實現有些問題。