Díky za článek.
Chápu správně, že v tomhle kontextu znamená pojem tensor v podstatě z definice k-rozměrné pole a nemá hlouběji moc společného s tím čemu říkáme tensor (vektor, ...) ve fyzice/matematice? Nebo tam někde je schované i rozlišování "horních" a "dolních" (ko- a kontra-variantních) indexů a transformace se změnou báze? Jak se pak interpretuje reshaping?
Ptám se, protože co jsem viděl tak u těch použití v neuronových sítích (což je deklarované použití) "tradiční" tensorová interpretace pořád smysl dává.
Ano, tensor v tomhle kontextu je jen označení pro n-rozměrné pole. V běžné terminologii se říká skalár/vektor/matice podle dimenzionality, ale když je třeba pojmenovat společný typ, tak se používá buď tensor ( torch.Tensor
, tf.Tensor
) nebo se dá přímo říct np.ndarray
.
Běžné operace nad tensory jsou element-wise operace, maticové násobení, různé lineárně algebraické operace, vše případně včetně různých batchových dimenzí. Třeba při práci s obrázky je nejčastější čtyřrozměrný tensor se shape [batch_size, height, width, channels]
(takhle je to v NumPy/JAX/TensorFlow; vy PyTorchi by kanály byly na druhém místě).
(Nabízená operace [v PyTorch/NumPy/TensorFlow/JAX] je také kontrakce tensorů pomocí notace založené na Einstein summation convention https://pytorch.org/docs/stable/generated/torch.einsum.html, s ní se dá užít hodně zábavy )
7. 11. 2024, 12:41 editováno autorem komentáře