Различные результаты умножения матриц с использованием языка Python и R - PullRequest
0 голосов
/ 01 июня 2018

Я транскрипирую многослойный алгоритм персептрона из 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?

1 Ответ

0 голосов
/ 01 июня 2018

Я предлагаю вам напечатать созданную вами матрицу:

#           [,1]      [,2]       [,3]
#[1,] -0.4442772 0.2783537 -0.3190043
#[2,] -0.1844143 0.2599441  0.2062185

Это не то же самое, что показывает ссылка на Wolfram Alpha.

Вы получите тот же результат, что и в Python и Mathematica, если высоздать ту же матрицу:

hidden <- matrix(c(-0.4442772, -0.1844143, 0.2783537, 0.2599441, -0.3190043, 0.2062185), nrow=2, ncol=3, 
            byrow = TRUE) #fill matrix by row instead of default by column 
#           [,1]       [,2]      [,3]
#[1,] -0.4442772 -0.1844143 0.2783537
#[2,]  0.2599441 -0.3190043 0.2062185
Xp <- c(0, 1, 1)
hidden %*% Xp
#           [,1]
#[1,]  0.0939394
#[2,] -0.1127858
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...