# Класс CMatrixMultiplicationLayer

<!-- TOC -->

- [Класс CMatrixMultiplicationLayer](#класс-cmatrixmultiplicationlayer)
    - [Настройки](#настройки)
    - [Обучаемые параметры](#обучаемые-параметры)
    - [Входы](#входы)
    - [Выходы](#выходы)

<!-- /TOC -->

Класс реализует слой, перемножающий матрицы из двух входов. Первые три размерности (`BatchLength * BatchWidth * ListSize`) считаются количеством матриц в наборах, следующие три (`Height * Width * Depth`) считаются количеством строк, а последняя (`Channels`) - количеством столбцов у матриц. Таким образом, слой попарно перемножает два набора матриц.

## Настройки

Слой не имеет настроек.

## Обучаемые параметры

Слой не имеет обучаемых параметров.

## Входы

Слой имеет 2 входа. На каждый из них подается блоб с набором матриц следующего размера:

- `BatchLength * BatchWidth * ListSize` - количество матриц в наборе, должно совпадать;
- `Height * Width * Depth` - количество строк;
- `Channels` - количество столбцов; `Channels` первого входа и `Height * Width * Depth` второго входа должны быть равны.

## Выходы

Единственный выход содержит блоб с произведениями матриц. Размеры блоба:

- `BatchLength`, `BatchWidth`, `ListSize`, `Height`, `Width`, `Depth` равны аналогичным у первого входа;
- `Channels` равен `Channels` второго входа.
