Я транскрипирую многослойный алгоритм персептрона из R-программы в Python, однако я столкнулся с проблемой, умножение матриц дало мне другие результаты:
R язык:
> hidden <- matrix(c(-0.4442772, -0.1844143, 0.2783537, 0.2599441, -0.3190043, 0.2062185), nrow=2, ncol=3)
> Xp <- c(0, 1, 1)
> hidden %*% Xp
[,1]
[1,] -0.0406506
[2,] 0.4661626
Python:
>>> import numpy as np
>>> Xp = np.array([0, 1, 1])
>>> hidden = np.asmatrix([[-0.4442772, -0.1844143, 0.2783537], [0.2599441, -0.3190043, 0.2062185]])
>>> np.dot(hidden, nq)
matrix([[ 0.0939394, -0.1127858]])
Используя Wolfram , Python будет прав, но даже если он не сходится к правильному результату алгоритма.Я искал разницу между этими двумя языками в этом аспекте и ничего не нашел.Кроме того, я применил к матрице еще одно матричное умножение, и оба результата были равны:
R язык:
> m1 <- matrix(c(2,3,4,7,0,1), nrow = 3, ncol=2)
> m2 <- matrix(c(1,6,4,3,6,9), nrow = 2, ncol=3)
> m1 %*% m2
[,1] [,2] [,3]
[1,] 44 29 75
[2,] 3 12 18
[3,] 10 19 33
Python:
>>> import numpy as np
>>> m1 = np.matrix([[2,7], [3,0], [4,1]])
>>> m2 = np.matrix([[1,4,6], [6,3,9]])
>>> np.dot(m1,m2)
matrix([[44, 29, 75],
[ 3, 12, 18],
[10, 19, 33]])
В чем разница вэтот случай?И как я могу достичь этих результатов в Python?