Einsum

public final class Einsum

Contração do tensor de acordo com a convenção de soma de Einstein.

Implementa a contração e redução generalizada do Tensor. Cada tensor de entrada deve ter um subscrito de entrada correspondente aparecendo no lado esquerdo separado por vírgulas da equação. O lado direito da equação consiste no subscrito de saída. Os subscritos de entrada e os subscritos de saída devem consistir em zero ou mais rótulos de eixos nomeados e no máximo uma reticência (`...`).

Os rótulos dos eixos nomeados podem ser qualquer caractere único que não tenha um significado especial, ou seja, `, .->`. O comportamento deste Op é indefinido se ele receber uma equação mal formatada; uma vez que a validação é feita no momento da construção do gráfico, omitimos as verificações de validação de formato no tempo de execução.

Nota: Este Op não se destina a ser chamado pelo usuário; vez os usuários devem chamar tf.einsum diretamente. É um Op escondido usado por tf.einsum .

As operações são aplicadas à (s) entrada (s) de acordo com as seguintes regras:

(a) Diagonais generalizadas: para dimensões de entrada correspondentes a rótulos de eixo que aparecem mais de uma vez no mesmo subscrito de entrada, tomamos a diagonal generalizada (`k`-dimensional). Por exemplo, na equação `iii-> i` com forma de entrada` [3, 3, 3] `, a diagonal generalizada consistiria em elementos` 3` nos índices `(0, 0, 0)`, `(1 , 1, 1) `e` (2, 2, 2) `para criar um tensor de forma` [3] `.

(b) Redução: os eixos correspondentes aos rótulos que aparecem apenas em um subscrito de entrada, mas não no subscrito de saída, são somados antes da contração do tensor. Por exemplo, na equação `ab, bc-> b`, os rótulos dos eixos` a` e `c` são os rótulos dos eixos de redução.

(c) Dimensões do lote: os eixos correspondentes aos rótulos que aparecem em cada um dos subscritos de entrada e também no subscrito de saída constituem as dimensões do lote na contração do tensor. Rótulos de eixo sem nome correspondentes a reticências (`...`) também correspondem às dimensões do lote. Por exemplo, para a equação que denota a multiplicação da matriz do lote, `bij, bjk-> bik`, o rótulo do eixo` b` corresponde a uma dimensão do lote.

(d) Contração: No caso de einsum binário, os eixos correspondentes aos rótulos que aparecem em duas entradas diferentes (e não na saída) são contraídos um contra o outro. Considerando a equação de multiplicação da matriz de lote novamente (`bij, bjk-> bik`), o rótulo do eixo contraído é` j`.

(e) Expandir diagonal: Se os subscritos de saída contêm rótulos de eixo repetidos (explícitos), a operação oposta de (a) é aplicada. Por exemplo, na equação `i-> iii`, e na forma de entrada` [3] `, a saída da forma` [3, 3, 3] `são todos zeros, exceto para a diagonal (generalizada) que é preenchida com valores da entrada. Nota: Esta operação não é suportado por `np.einsum` ou tf.einsum ; que é fornecida para permitir o cálculo do gradiente simbólica de tf.einsum .

Os subscritos de saída devem conter apenas rótulos que aparecem em pelo menos um dos subscritos de entrada. Além disso, todos os mapeamentos de dimensões para o mesmo rótulo de eixo devem ser iguais.

Qualquer um dos subscritos de entrada e saída pode conter no máximo uma única reticência (`...`). Essas reticências são mapeadas em relação às dimensões que não correspondem a nenhum rótulo de eixo nomeado. Se duas entradas contiverem reticências, elas serão transmitidas de acordo com a transmissão [regras] padrão do NumPy (http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).

As dimensões transmitidas são colocadas no local correspondente das reticências no subscrito de saída. Se as dimensões transmitidas não estiverem vazias e os subscritos de saída não contiverem reticências, será gerado um erro InvalidArgument.

Constantes

Fragmento OP_NAME O nome desta operação, conforme conhecido pelo motor principal TensorFlow

Métodos Públicos

Output <T>
asOutput ()
Retorna o identificador simbólico do tensor.
estática <T estende TType > Einsum <T>
criar ( Scope escopo, Iterable < Operando <T >> entradas, equação String)
Método de fábrica para criar uma classe envolvendo uma nova operação Einsum.
Output <T>
saída ()
Tensor de saída com forma dependendo da `equação`.

Métodos herdados

Constantes

nome_op final String public static

O nome desta operação, conforme conhecido pelo motor principal TensorFlow

Valor constante: "Einsum"

Métodos Públicos

pública Output <T> asOutput ()

Retorna o identificador simbólico do tensor.

As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

public static Einsum <T> create ( Scope escopo, Iterable < Operando <T >> entradas, equação String)

Método de fábrica para criar uma classe envolvendo uma nova operação Einsum.

Parâmetros
alcance escopo atual
entradas Lista de 1 ou 2 tensores.
equação String que descreve a operação Einstein Summation; no formato de np.einsum.
Devoluções
  • uma nova instância de Einsum

pública Output <T> de saída ()

Tensor de saída com forma dependendo da `equação`.