Я реализую нейронную сеть в python, как часть backpropagation Мне нужно умножить 3D-матрицу, назовите ее A, размерность (200, 100, 1)
, на двумерную матрицу, назовите ее W, размерность (100, 200)
результат должен иметь размеры (200, 200, 1)
.Многомерное умножение матрицы на массив numpy
A - вектор ошибок, W - весовая матрица, продукт должен использоваться для расчета обновлений для предыдущего слоя.
Я попытался решить ее с помощью matrix_multiply
(from numpy.core.umath_tests
), я попытался изменения формы W в (100,200,1) и умножения, но это бросает
ValueError: matrix_multiply: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (m,n),(n,p)->(m,p) (size 100 is different from 1)
.
Как я могу это решить?
У вас есть веская причина для сохранения формы 'A' как (200, 100, 1) вместо того, чтобы сбросить тривиальное измерение и сделать его форму (200, 100)? –
@WarrenWeckesser Я не рассматривал этот вариант. Спасибо за предложение, я изучу его. – dpk