Матричное умножение определяется как :
C = AB ⇔ C<sub>i,j</sub> = Σ<sub>k=1..n</sub> A<sub>i,k</sub> B<sub>k,j</sub> for i,j = 1...n (in case of square matrices).
Таким образом, outputLayer
является вектором.Так как HiddenLayer
тоже вектор, это не умножение матрицы, а умножение вектора матрицы, что упрощает приведенную выше формулу:
b = Ax ⇔ b<sub>i</sub> = Σ<sub>k=1..m</sub> A<sub>i,k</sub> x<sub>k</sub> for i = 1...n (A is an n x m matrix).
Так что в целом ваш код должен выглядеть примерно так*
for(int row = 0; row < 12; row++){
outputLayer[row] = 0;
for(int column = 0; column < 50; column++){
outputLayer[row] += W2[row][column]*HiddenLayer[column];
}
}