gpt4 book ai didi

python - 使用 Python 和 NumPy 的神经网络

转载 作者:行者123 更新时间:2023-12-01 07:15:39 27 4
gpt4 key购买 nike

我是 NN 的新手,我正在尝试使用 Python/Numpy 从我在以下位置找到的代码中实现 NN:“从头开始用 Python 创建一个简单的神经网络” enter link description here

我的输入数组是:

array([[5.71, 5.77, 5.94],
[5.77, 5.94, 5.51],
[5.94, 5.51, 5.88],
[5.51, 5.88, 5.73]])

输出数组为:

array([[5.51],
[5.88],
[5.73],
[6.41]])

运行代码后,我看到以下不正确的结果:

synaptic_weights after training
[[1.90625275]
[2.54867698]
[1.07698312]]
outputs after training
[[1.]
[1.]
[1.]
[1.]]

这是代码的核心:

for iteration in range(1000):
input_layer = tr_input
outputs = sigmoid(np.dot(input_layer, synapic_weights))

error = tr_output - outputs

adjustmnets = error * sigmoid_derivative(outputs)

synapic_weights +=np.dot(input_layer.T, adjustmnets )

print('synaptic_weights after training')
print(synapic_weights)

print('outputs after training')
print(outputs)

我应该对此代码进行哪些更改才能使其适用于我的数据?或者我应该采取不同的方法?非常感谢任何帮助。

最佳答案

那是因为您使用了错误的激活函数(即 sigmoid)。我们使用 sigmoid 函数的主要原因是因为它存在于 (0 到 1) 之间。因此,它特别适用于我们必须预测概率作为输出的模型。由于任何事物的概率只存在于 0 和 1 的范围内,sigmoid 是正确的选择。

如果您想训练模型来预测数组中的值,则应使用回归模型。否则,您可以将输出转换为标签(例如 5.x 转换为 0,6.x 转换为 1)并重新训练模型。

关于python - 使用 Python 和 NumPy 的神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57982619/

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