Peringatan: API ini tidak digunakan lagi dan akan dihapus di versi TensorFlow mendatang setelah penggantinya stabil.

Einsum

kelas final publik Einsum

Kontraksi tensor menurut konvensi penjumlahan Einstein.

Menerapkan kontraksi dan reduksi Tensor umum. Setiap Tensor input harus memiliki subskrip input yang sesuai yang muncul di sisi kiri persamaan yang dipisahkan koma. Sisi kanan persamaan terdiri dari subskrip keluaran. Subskrip input dan subskrip output harus terdiri dari nol atau lebih label sumbu bernama dan paling banyak satu elipsis (`...`).

Label sumbu bernama dapat berupa karakter tunggal apa pun selain yang memiliki arti khusus, yaitu `,.->`. Perilaku Op ini tidak terdefinisi jika menerima persamaan berformat buruk; karena validasi dilakukan pada waktu pembuatan grafik, kami menghilangkan pemeriksaan validasi format saat runtime.

Catatan: Op ini tidak dimaksudkan untuk dipanggil oleh pengguna; sebaliknya pengguna harus menghubungi tf.einsum secara langsung. Ini adalah Op tersembunyi yang digunakan oleh tf.einsum .

Operasi diterapkan pada input sesuai dengan aturan berikut:

(a) Diagonal Umum: Untuk dimensi masukan yang sesuai dengan label sumbu yang muncul lebih dari satu kali dalam subskrip masukan yang sama, kami mengambil diagonal umum (`k`-dimensi). Misalnya, dalam persamaan `iii->i` dengan bentuk input `[3, 3, 3]`, diagonal umum akan terdiri dari elemen `3` pada indeks `(0, 0, 0)`, `(1 , 1, 1)` dan `(2, 2, 2)` untuk membuat Tensor berbentuk `[3]`.

(b) Reduksi: Sumbu yang sesuai dengan label yang muncul hanya dalam satu subskrip input tetapi tidak dalam subskrip output dijumlahkan sebelum kontraksi Tensor. Misalnya, dalam persamaan `ab,bc->b`, label sumbu `a` dan `c` adalah label sumbu reduksi.

(c) Dimensi Batch: Sumbu yang sesuai dengan label yang muncul di setiap subskrip input dan juga di subskrip output membentuk dimensi batch dalam kontraksi Tensor. Label sumbu tanpa nama yang sesuai dengan elipsis (`...`) juga sesuai dengan dimensi kumpulan. Misalnya, untuk persamaan yang menunjukkan perkalian matriks batch, `bij,bjk->bik`, label sumbu `b` sesuai dengan dimensi batch.

(d) Kontraksi: Dalam kasus einsum biner, sumbu yang sesuai dengan label yang muncul di dua input berbeda (dan bukan di output) dikontrak satu sama lain. Mempertimbangkan kembali persamaan perkalian matriks batch (`bij,bjk->bik`), label sumbu yang dikontrak adalah `j`.

(e) Perluas Diagonal: Jika subskrip keluaran berisi label sumbu berulang (eksplisit), operasi kebalikan dari (a) diterapkan. Misalnya, dalam persamaan `i->iii`, dan input bentuk `[3]`, output dari bentuk `[3, 3, 3]` semuanya nol, kecuali untuk diagonal (digeneralisasi) yang diisi dengan nilai dari masukan. Catatan: Operasi ini tidak didukung oleh `np.einsum` atau tf.einsum ; itu disediakan untuk memungkinkan komputasi gradien simbolik tf.einsum .

Subskrip keluaran hanya boleh berisi label yang muncul di setidaknya salah satu subskrip masukan. Selanjutnya, semua pemetaan dimensi ke label sumbu yang sama harus sama.

Subskrip input dan output mana pun dapat berisi paling banyak satu elipsis (`...`). Elipsis ini dipetakan terhadap dimensi yang tidak sesuai dengan label sumbu yang diberi nama. Jika dua masukan berisi elipsis, maka masukan tersebut disiarkan menurut [aturan] penyiaran NumPy standar (http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).

Dimensi yang disiarkan ditempatkan di lokasi elipsis yang sesuai di subskrip keluaran. Jika dimensi yang disiarkan tidak kosong dan subskrip keluaran tidak mengandung elipsis, maka kesalahan InvalidArgument akan muncul.

Metode Publik

Keluaran <T>
sebagai Keluaran ()
Mengembalikan pegangan simbolis dari sebuah tensor.
statis <T> Einsum <T>
buat ( Cakupan cakupan, input Iterable< Operand <T>>, Persamaan string)
Metode pabrik untuk membuat kelas yang membungkus operasi Einsum baru.
Keluaran <T>
keluaran ()
Output Tensor dengan bentuk tergantung pada `persamaan`.

Metode yang Diwarisi

Metode Publik

Output publik <T> sebagai Output ()

Mengembalikan pegangan simbolis dari sebuah tensor.

Input ke operasi TensorFlow adalah output dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

public static Einsum <T> create ( Scope scope, Iterable< Operand <T>> input, persamaan String)

Metode pabrik untuk membuat kelas yang membungkus operasi Einsum baru.

Parameter
cakupan lingkup saat ini
masukan Daftar 1 atau 2 Tensor.
persamaan String yang menjelaskan operasi Penjumlahan Einstein; dalam format np.einsum.
Kembali
  • contoh baru dari Einsum

Keluaran publik <T> keluaran ()

Output Tensor dengan bentuk tergantung pada `persamaan`.