Я выполняю обратное распространение на плотном слое в нейронной сети, одновременно запускаю и распространяю несколько примеров одновременно.
Таким образом, при вычислении ошибок по весу я вычисляю сумму Эйнштейна для двумерного массива ( ошибки в нейронах в слое i + 1) с помощью двумерного массива (активация нейронов в слое i) для создания трехмерного массива.
Я делаю это в Rust , используя ndarray и ndarray_einsum_beta
Я делаю это так:
let weight_errors = einsum("ai,aj->aji", &[&error, &activations[last_index]]).unwrap();
Если вы не знакомы с Rust в псевдокоде, это может быть :
weight_errors = einsum("ai,aj->aji",error,activations)
Как бы я go о реализации такой операции с использованием ArrayFire ?