Einstein toplama kuralına göre tensör daralması.
Genelleştirilmiş Tensör kasılmasını ve azaltılmasını uygular. Her giriş Tensörünün, denklemin virgülle ayrılmış sol tarafında görünen, karşılık gelen bir giriş alt simgesi olması gerekir. Denklemin sağ tarafı çıktı alt indisinden oluşur. Giriş alt simgeleri ve çıkış alt simgeleri, sıfır veya daha fazla adlandırılmış eksen etiketinden ve en fazla bir üç noktadan (`...`) oluşmalıdır.
Adlandırılmış eksen etiketleri, özel anlamı olan `,.->` dışında herhangi bir tek karakter olabilir. Yanlış biçimlendirilmiş bir denklem alırsa bu Op'un davranışı tanımsızdır; doğrulama grafik oluşturma zamanında yapıldığından, çalışma zamanında format doğrulama kontrollerini atlıyoruz.
Not: Bu Op'un kullanıcı tarafından çağrılması amaçlanmamıştır ; bunun yerine kullanıcılar doğrudan tf.einsum
aramalıdır. tf.einsum
tarafından kullanılan gizli bir Op'tur.
Giriş(ler)e işlemler aşağıdaki kurallara göre uygulanır:
(a) Genelleştirilmiş Köşegenler: Aynı giriş alt simgesinde birden fazla kez görünen eksen etiketlerine karşılık gelen giriş boyutları için genelleştirilmiş ('k' boyutlu) köşegeni alırız. Örneğin, giriş şekli '[3, 3, 3]' olan 'iii->i' denkleminde genelleştirilmiş köşegen, '(0, 0, 0)', '(1) endekslerindeki '3' elementten oluşacaktır , 1, 1)' ve '(2, 2, 2)' ile '[3]' şeklinde bir Tensör oluşturun.
(b) Azaltma: Yalnızca bir giriş alt simgesinde görünen ancak çıkış alt simgesinde bulunmayan etiketlere karşılık gelen eksenler, Tensör daralmasından önce toplanır. Örneğin, 'ab,bc->b' denkleminde, 'a' ve 'c' eksen etiketleri indirgeme ekseni etiketleridir.
(c) Parti Boyutları: Her bir girdi abonesinde ve aynı zamanda çıktı alt indisinde görünen etiketlere karşılık gelen eksenler, Tensör daralmasındaki parti boyutlarını oluşturur. Üç noktaya (`...`) karşılık gelen isimsiz eksen etiketleri aynı zamanda parti boyutlarına da karşılık gelir. Örneğin, toplu matris çarpımını ifade eden denklem için 'bij,bjk->bik', eksen etiketi 'b' bir toplu boyuta karşılık gelir.
(d) Daralma: İkili einsum durumunda, iki farklı girişte (çıkışta değil) görünen etiketlere karşılık gelen eksenler birbirine karşı daraltılır. Toplu matris çarpım denklemini tekrar düşünürsek (`bij,bjk->bik`), daraltılmış eksen etiketi 'j' olur.
(e) Çapraz Genişletme: Çıkış alt simgeleri tekrarlanan (açık) eksen etiketleri içeriyorsa, (a)'nın tersi işlemi uygulanır. Örneğin, 'i->iii' denkleminde ve giriş şekli '[3]'de, '[3, 3, 3]' şeklinin çıktısının tamamı sıfırdır, ancak (genelleştirilmiş) köşegen ile doldurulmuştur. girişten gelen değerler. Not: Bu işlem 'np.einsum' veya tf.einsum
tarafından desteklenmez; tf.einsum
sembolik eğiminin hesaplanmasını sağlamak için sağlanmıştır.
Çıkış abonelikleri yalnızca giriş aboneliklerinden en az birinde görünen etiketleri içermelidir. Ayrıca, aynı eksen etiketine eşlenen tüm boyutlar eşit olmalıdır.
Giriş ve çıkış simgelerinden herhangi biri en fazla tek bir üç nokta (`...`) içerebilir. Bu üç nokta, adlandırılmış herhangi bir eksen etiketine karşılık gelmeyen boyutlara göre eşlenir. İki giriş üç nokta içeriyorsa, bunlar standart NumPy yayın [kurallarına](http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html) göre yayınlanır.
Yayınlanan boyutlar, çıktı alt simgesindeki üç noktanın karşılık gelen konumuna yerleştirilir. Yayınlanan boyutlar boş değilse ve çıktı aboneleri üç nokta içermiyorsa InvalidArgument hatası ortaya çıkar.
Sabitler
Sicim | OP_NAME | Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı |
Genel Yöntemler
Çıkış <T> | Çıkış olarak () Tensörün sembolik tutamacını döndürür. |
statik <T, TType'ı genişletir > Einsum <T> | |
Çıkış <T> | çıktı () 'Denklem'e bağlı şekle sahip Çıkış Tensörü. |
Kalıtsal Yöntemler
Sabitler
genel statik son Dize OP_NAME
Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı
Genel Yöntemler
genel Çıkış <T> asOutput ()
Tensörün sembolik tutamacını döndürür.
TensorFlow işlemlerinin girdileri, başka bir TensorFlow işleminin çıktılarıdır. Bu yöntem, girişin hesaplanmasını temsil eden sembolik bir tanıtıcı elde etmek için kullanılır.
public static Einsum <T> create ( Kapsam kapsamı, Yinelenebilir< İşlenen <T>> girişler, Dizi denklemi)
Yeni bir Einsum işlemini saran bir sınıf oluşturmak için fabrika yöntemi.
Parametreler
kapsam | mevcut kapsam |
---|---|
girişler | 1 veya 2 Tensörün listesi. |
denklem | Einstein Toplama işlemini açıklayan dize; np.einsum formatında. |
İadeler
- Einsum'un yeni bir örneği