Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

tf.einsum

Tensorflow 1 versione Visualizza sorgente su GitHub

Tensor contrazione negli indici specificati e prodotto esterno.

Utilizzato nei notebook

Utilizzato nella guida Utilizzato nelle esercitazioni

Einsum permette di definire tensori definendone la computazione elemento saggio. Questo calcolo è definita da equation , una forma abbreviata basato su Einstein somma. Come esempio, si consideri la moltiplicazione di due matrici A e B per formare una matrice C. Gli elementi C sono dati da:

   C[i,k] = sum_j A[i,j] * B[j,k]
 

La corrispondente equation è:

   ij,jk->ik
 

In generale, per convertire l'equazione elemento-saggio nella equation stringa, utilizzare la procedura seguente (stringhe intermedi per esempio matrici moltiplicativo previsto tra parentesi):

  1. rimuovere i nomi delle variabili, staffe, e le virgole, ( ik = sum_j ij * jk )
  2. sostituire "*" con "" ( ik = sum_j ij , jk )
  3. eliminare i segni di somma, e ( ik = ij, jk )
  4. spostare l'output a destra, mentre sostituendo "=" con "->". ( ij,jk->ik )

Molte operazioni comuni possono essere espressi in questo modo. Per esempio:

 # Matrix multiplication
einsum('ij,jk->ik', m0, m1)  # output[i,k] = sum_j m0[i,j] * m1[j, k]

# Dot product
einsum('i,i->', u, v)  # output = sum_i u[i]*v[i]

# Outer product
einsum('i,j->ij', u, v)  # output[i,j] = u[i]*v[j]

# Transpose
einsum('ij->ji', m)  # output[j,i] = m[i,j]

# Trace
einsum('ii', m)  # output[j,i] = trace(m) = sum_i m[i, i]

# Batch matrix multiplication
einsum('aij,ajk->aik', s, t)  # out[a,i,k] = sum_j s[a,i,j] * t[a, j, k]
 

Per attivare e broadcasting controllo, utilizzare i puntini di sospensione. Ad esempio, effettuare lotto moltiplicazione matriciale con radiodiffusione stile NumPy dimensioni di tutti i lotti, uso:

 einsum('...ij,...jk->...ik', u, v)
 

equation una str descrive la contrazione, nello stesso formato come numpy.einsum .
*inputs gli ingressi al contratto (ciascuno un Tensor ), le cui forme devono essere coerenti con equation .
**kwargs

  • optimize: strategia di ottimizzazione da utilizzare per trovare il percorso di contrazione utilizzando opt_einsum. Deve essere 'avidi', 'ottimale', 'branch-2', 'branch-tutto' o 'auto'. (Opzionale, default: 'avidi').
  • Nome: A per l'operazione (opzionale).

Contratta Tensor , con forma determinata dalla equation .

ValueError Se

  • il formato di equation non è corretto,
  • numero di ingressi o loro forme sono incoerenti con equation .