Ich habe einen Datensatz von 178 Elementen, und jedes enthält 13 Features und 1 Label. Label wird als One-Hot-Array gespeichert. Mein Trainingsdatensatz besteht aus 158 Elementen.Was ist falsch an meinem neuronalen Netzwerkmodell?
Hier ist, was mein Modell wie folgt aussieht:
x = tf.placeholder(tf.float32, [None,training_data.shape[1]])
y_ = tf.placeholder(tf.float32, [None,training_data_labels.shape[1]])
node_1 = 300
node_2 = 300
node_3 = 300
out_n = 3
#1
W1 = tf.Variable(tf.random_normal([training_data.shape[1], node_1]))
B1 = tf.Variable(tf.random_normal([node_1]))
y1 = tf.add(tf.matmul(x,W1),B1)
y1 = tf.nn.relu(y1)
#2
W2 = tf.Variable(tf.random_normal([node_1, node_2]))
B2 = tf.Variable(tf.random_normal([node_2]))
y2 = tf.add(tf.matmul(y1,W2),B2)
y2 = tf.nn.relu(y2)
#3
W3 = tf.Variable(tf.random_normal([node_2, node_3]))
B3 = tf.Variable(tf.random_normal([node_3]))
y3 = tf.add(tf.matmul(y2,W3),B3)
y3 = tf.nn.relu(y3)
#output
W4 = tf.Variable(tf.random_normal([node_3, out_n]))
B4 = tf.Variable(tf.random_normal([out_n]))
y4 = tf.add(tf.matmul(y3,W4),B4)
y = tf.nn.softmax(y4)
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(200):
sess.run(optimizer,feed_dict={x:training_data, y_:training_data_labels})
correct = tf.equal(tf.argmax(y_, 1), tf.argmax(y, 1))
accuracy = tf.reduce_mean(tf.cast(correct, 'float'))
print('Accuracy:',accuracy.eval({x:eval_data, y_:eval_data_labels}))
Aber die Genauigkeit sehr niedrig ist, habe ich versucht, Erhöhung der Bereich von 200 bis einer höheren Zahl, aber es bleibt immer noch niedrig.
Was könnte ich tun, um die Ergebnisse zu verbessern?
Das Problem liegt höchstwahrscheinlich bei der Initialisierung. Stellen Sie Ihre Trainingsdaten zur Verfügung, um dies zu reproduzieren – Maxim
@Skam es ist eine Hausaufgabe .. –
Warum brauchen Sie Argmax-Methode in gleich? Ich denke, du solltest beide Argmax-Methoden löschen, dann kannst du gut gehen – eneski