[英]Neural network with 2D array input and 1D array output
我在编写简单的神经网络时遇到了一些问题。 我正在通过“ 11行神经网络”指南( https://www.kdnuggets.com/2015/10/neural-network-python-tutorial.html )了解python中的神经网络。 有2D数组作为输入(在第一维中是示例编号,在第二维-示例中)有1D数组作为输出。 所以现在我尝试做类似的事情。 我有用于学习的输入数组,包含1000个示例,每个示例都有64个神经元:
n0 = np.zeros((1000, 64))
之后,我用数据集中的数据填充数组。 我的体重像:
w0 = 2 * np.random.random((64, 120))-1
w1 = 2 * np.random.random((120, 240))-1
w2 = 2 * np.random.random((240, 240))-1
w3 = 2 * np.random.random((240, 240))-1
w4 = 2 * np.random.random((240, 120))-1
w5 = 2 * np.random.random((120, 44))-1
转发功能为:
n1 = sigmoid(np.dot(n0, w0))
n2 = sigmoid(np.dot(n1, w1))
#...
n6 = sigmoid(np.dot(n5, w5))
之后,n6的大小为1000x44。 以及如何获得一维阵列而不是二维阵列? 同样在权重校正之后,神经元可以得到像6.72853722e-172这样的奇数。在n6中,答案是1.00000000e + 000和0.00000000e-000,在乙状结肠功能之后会怎样呢?
之后,n6的大小为1000x44。 以及如何获得一维阵列而不是二维阵列?
之所以要得到尺寸为1000x44
的输出数组,是因为n6
有44个输出节点,而您的输入数据有1000个示例(这意味着您要同时训练所有示例上的网络)。
换句话说,您的输出层正在为数据集中的每个示例产生“激活” <-这是正常的和预期的。 如果您一次训练网络一个示例,则输出数组将为1x44
(或仅为44
)。
同样在权重校正之后,神经元可以得到像6.72853722e-172这样的奇数。在n6中,答案是1.00000000e + 000和0.00000000e-000,在乙状结肠功能之后会怎样呢?
乙状结肠产生0
到1
之间的值。 因此: 6.72853722e-172 (或6.72 * 10 -172 ), 1.00000000e + 000和0.00000000e-000都在0
和1
之间,所以这也是正常的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.