我用的是完全连接的神经网络,我用的是标准化的数据,这样每个样本值的范围从0到1。我在第一层用了100个神经元,在第二层用了10个,在训练过程中用了将近50个缺失样本。我想把我的数据分为两类。但我的网络性能太低,几乎49%的训练和测试数据。我试图通过更改超参数的值来提高性能。但没用。有人能告诉我怎样才能获得更高的绩效吗?你知道吗
x = tf.placeholder(tf.float32, [None, nPixels])
W1 = tf.Variable(tf.random_normal([nPixels, nNodes1], stddev=0.01))
b1 = tf.Variable(tf.zeros([nNodes1]))
y1 = tf.nn.relu(tf.matmul(x, W1) + b1)
W2 = tf.Variable(tf.random_normal([nNodes1, nNodes2], stddev=0.01))
b2 = tf.Variable(tf.zeros([nNodes2]))
y2 = tf.nn.relu(tf.matmul(y1, W2) + b2)
W3 = tf.Variable(tf.random_normal([nNodes2, nLabels], stddev=0.01))
b3 = tf.Variable(tf.zeros([nLabels]))
y = tf.nn.softmax(tf.matmul(y2, W3) + b3)
y_ = tf.placeholder(dtype=tf.float32, shape=[None, 2])
cross_entropy = -1*tf.reduce_sum(y_* tf.log(y), axis=1)
loss = tf.reduce_mean(cross_entropy)
optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
correct_prediction = tf.equal(tf.argmax(y_,axis=1), tf.argmax(y, axis=1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
你的计算模型对“图像”一无所知,它只看到数字。所以,如果你用0-255的像素值训练它,它已经学会了“光”的意思,“暗”的意思,以及如何把这些结合起来,给你任何你尝试的目标值。你知道吗
你所做的标准化就是你强制所有像素为0-1。所以就模特儿而言,他们都黑得像黑夜一样。毫无疑问,它不能提取任何有意义的东西。你知道吗
您需要在训练和测试期间应用相同的输入规范化。
说到神经网络模型的归一化,最好是归一化到零均值。你知道吗
相关问题 更多 >
编程相关推荐