Funcția torch.einsum() (Einstein Summation) oferă o sintaxă extrem de expresivă pentru a descrie operații tensoriale complexe (transpuneri, urme, înmulțiri pe loturi, produse Diagonale) utilizând indici literați simpli.
import torch
# Batch Matrix Multiplication (BMM) clasic
batch_size, seq_len, d_model = 8, 128, 64
q = torch.randn(batch_size, seq_len, d_model)
k = torch.randn(batch_size, seq_len, d_model)
# Calcul similaritate Atenție: Q * K^T -> (batch_size, seq_len, seq_len)
# Formula einsum: 'b i d, b j d -> b i j'
scores = torch.einsum('bid,bjd->bij', q, k)
print("Formă scoruri atenție:", scores.shape) # torch.Size([8, 128, 128])
einsum elimină necesitatea combinării complicate de comenzi permute(), view() și bmm(), permițând compilatorului PyTorch să optimizeze buclele de calcul la nivel hardware.
Întrebări & Exemple practice:
Notația Einstein în PyTorch cu torch.einsumAi o întrebare despre Notația Einstein în PyTorch cu torch.einsum sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.