我正在以下位置研究代码示例:11行Python中的神经网络
在第22行中,我是否正确理解syn0是具有3行4列的矩阵?如果是这样,为什么?在第9-11行中创建的X矩阵的大小为4x3,因此我希望第22行中的syn0与ALSO的大小相同,因此X中的每个值都可以乘以syn0中的权重值。我最好的猜测是:我们希望将X(一个4x3矩阵)乘以syn0(一个3x4矩阵),而不必进行转置,因此下面的代码使我们免于转置。我想念什么?这是代码,后面是一个可能会提供线索的表:
01.import numpy as np
02.
03.def nonlin(x,deriv=False):
04. if(deriv==True):
05. return x*(1-x)
06.
07. return 1/(1+np.exp(-x))
08.
09.X = np.array([[0,0,1],
10. [0,1,1],
11. [1,0,1],
12. [1,1,1]])
13.
14.y = np.array([[0],
15. [1],
16. [1],
17. [0]])
18.
19.np.random.seed(1)
20.
21.# randomly initialize our weights with mean 0
22.syn0 = 2*np.random.random((3,4)) - 1
23.syn1 = 2*np.random.random((4,1)) - 1
为什么此表(随附代码)显示第1层的4x4隐藏权重矩阵??
输入(l0)隐藏权重(l1)输出(l2) 0 0 1 0.1 0.2 0.5 0.2 0 0 1 1 0.2 0.6 0.7 0.1 1 1 0 1 0.3 0.2 0.3 0.9 1 1 1 1 0.2 0.1 0.3 0.8 0 谢谢您的帮助,大卫