#theory



🎲 Broadcasting



При работе с тензорами в торче (не путать с мат. тензорами) важно знать про то, как работает broadcasting. Это когда вы проделываете операции с тензорами разной размерности, например, умножаете друг на друга.



Если broadcasting происходит, то операция считается без дополнительного выделения памяти, что обычно ведет к ускорению.



Чтобы это случилось должны выполняться три условия (кроме того, что в обоих тензорах должна быть хотя бы одна размерность). Начиная с последней размерности (смотрим картинку), они должны:



1️⃣ Либо совпадать



2️⃣ Либо одна из них должна быть единичкой



3️⃣ Либо одной из них не должно быть



👉 Чтобы потренироваться с этим, а заодно решить несколько задачек вот вам классный репозиторий Tensor-Puzzles. Прилагается Colab.



А для истинных копателей у автора есть еще и GPU-Puzzles.