gpt4 book ai didi

python - 为什么模型在归一化后表现不佳?

转载 作者:行者123 更新时间:2023-11-30 09:45:27 24 4
gpt4 key购买 nike

我正在使用完全连接的神经网络,并且使用归一化数据,以便每个样本值的范围从 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。所以就模特而言,它们都是黑如夜的。毫不奇怪,它无法提取任何有意义的东西。

您需要在训练和测试期间应用相同的输入标准化。

谈到神经网络模型的标准化,最好标准化为零均值。

关于python - 为什么模型在归一化后表现不佳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53255677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com