我尝试为mnist数据实现一个简单的两层神经网络 . 但该模型给出了非常差的准确度分数 . 我在第一个隐藏层上使用relu,然后在输出层使用softmax耦合损耗函数 . 第一个隐藏层的大小为8个单位 .

X_train=X_train.reshape(-1,784)
#placeholder
X=tf.placeholder(tf.float32,[None,784])
Y=tf.placeholder(tf.float32,[None,1])

#one hot encoding 
Y=tf.one_hot(y_train,10)

#layer 1 variables 
W1=tf.Variable(tf.random_normal([8,784]))
biases=tf.Variable(tf.zeros([8]))

#layer2 variables
W2=tf.Variable(tf.random_normal([10,8]))
biases2=tf.Variable(tf.zeros([10]))

#layer 1 output compute
logits1=tf.matmul(X,tf.transpose(W1))+biases
A1=tf.nn.relu(logits1)

#layer 2 output
logits2=tf.matmul(A1,tf.transpose(W2))+biases2)
loss=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=Y,logits=logits2))                                                                                                                                                        
optimizer=tf.train.AdamOptimizer(learning_rate=0.003).minimize(loss)

with tf.Session() as sess:
    init=tf.global_variables_initializer()
    sess.run(init)
    _,logits,loss=sess.run([optimizer,logitss,loss],feed_dict={X:X_train,Y:sess.run(Y)})

 y_pred=np.argmax(logits,axis=1)

print(sklearn.metrics(y_train,y_pred))#accuracy on training set

我在这个模型中哪里出错,因为准确度为0.067,这是非常错误的 .