“Se lidarmos com algoritmos de aprendizado profundo ou aprendizado de máquina, frequentemente precisamos chamar o método Einsum devido às múltiplas funcionalidades que ele oferece para executar operações em matrizes multidimensionais. A função Numpy Einsum é usada para a avaliação da Convenção de Somatização em homenagem a Einstein em diferentes operandos. Podemos usar esta função para representar diferentes operações algébricas e multidimensionais na forma mais simples. Essa função fornece ainda mais flexibilidade para as outras operações relacionadas a matrizes que nem são classificadas como operações clássicas de soma de Einstein, e essa função o faz em rótulos específicos dos subscritos, desativando e forçando as sumaturas da convenção.”
Procedimento
Neste manual, aprenderemos sobre a complexa função interna da biblioteca Python Numpy, eu.e. “Numpy Einsum”. Vamos saber como a função Einsum é relevante para a Convenção de Resumo de Einstein e como podemos utilizar essa função em nossos programas para executar várias operações de matriz e matriz.
Sintaxe
Para obter esclarecimentos sobre a sintaxe desta função Einsum, veremos o seguinte parâmetro junto com o método Einsum mencionado no script python.
$ Numpy. einsum (subscritos, *operando, out = Nenhum, dtype = Nenhum, Order = 'K', Casting = 'Safe', Optimize = false)
Os valores escritos entre os colchetes “()” são os parâmetros desta função que explicaremos nas próximas linhas. O "Subscrito" na função representa os subscritos que usamos para a Convenção de Somatórios de Einstein como a lista dos rótulos subscritos que são separados usando uma vírgula ", e especifica os subscritos para a soma como lista de vírgula separada por etiquetas subcritivas.
Com esse tipo de subscrito, a função assume e implementa o tipo implícito da função que as sumates de convenção de Einstein oferecem até que não especifiquemos a função explícita pelo indicador, i i.e.”->”. Em seguida, estão os "operando"; Essas são as matrizes que usamos para a operação do método Einsum. Então vem o "dtype"; Este parâmetro garante que os cálculos sejam específicos do tipo de dados. "Otimizar" é o outro parâmetro e é opcional, mas isso diz se a otimização (intermediária) para a função deve ocorrer ou não. Se seu valor for definido como falso, não haveria otimização; caso contrário, no caso de verdadeiro, a otimização ocorreria. O último é a "ordem", que também é um parâmetro opcional e, para a saída, o layout da memória é controlado por este parâmetro.
Exemplo # 01
O exemplo praticamente demonstrará como podemos aplicar o método Einsum a várias funções. O software que usaremos para compilar o programa para este exemplo é "Spyder", um conhecido aplicativo de código aberto fornecido ao usuário pela plataforma Python. O exemplo vai chamar o método Einsum para calcular o resumo da convenção de Einsteins para as várias matrizes multidimensionais. Para escrever o programa no idioma Python após a criação do novo projeto, usaremos a biblioteca fornecida por "Spyder" para usar a matriz multidimensional e suas funções relevantes. As bibliotecas são os arquivos que contêm informações sobre diferentes funções e permitem que o programa execute essas funções.
Uma dessas bibliotecas que permite trabalhar com a operação da matriz é "Numpy"; portanto, nesta biblioteca instalada, integraremos o módulo Numpy como o "NP". Vamos definir as duas matrizes; Ambos serão unidimensionais, e seus elementos terão o valor dado como "[7, 8, 9]" e "[3, 2, 4]", respectivamente. Ambas as matrizes serão atribuídas a alguma variável com o nome "ARR1" e "ARR2", respectivamente. Em seguida, aplicaremos o método Einsum nessas matrizes chamando o método Einsum, e.g. “NP. einsum ("n, n", arr1, arr2) ".
Lembre -se que este "n, n" é a lista separada de etiquetas subscritas que discutimos anteriormente na sintaxe; Isso define que primeiro, a transposição da matriz ar1 será tomada e, em seguida. Para colocar os resultados na tela chamada de função print ().
importar numpy como np
#Declare as duas matrizes com 1 dimensão
arr1 = np.Array ([7, 8, 9])
arr2 = np.Array ([3, 2, 4])
# Array original com suas dimensões
Impressão (ARR1)
Impressão (ARR2)
resultado = np.einsum ("i, i", arr1, arr2)
#Convenção de soma de Einstein
Imprimir (resultado)
A imagem para o código e saída é mostrada na figura acima. Quando o código foi executado, ele retornou a multiplicação de ambas as matrizes usando o método Einsum que funciona no conceito da Convenção de Somatório de Einsteins.
Exemplo # 02
No segundo exemplo deste artigo, usaremos as diferentes listas de rótulos de subscritos na função e depois usaremos o método Einsum. Para implementar este exemplo, depois de importar o módulo Numpy, declare as duas matrizes com a mesma dimensão, eu.e. 3 × 3, o que significa que cada matriz terá 3 colunas e 3 linhas, e definiremos essas matrizes através da chamada de método de “np. arranjo () .reShape () ”. Nesta função, a combinação de duas funções é usada primeiro é "providenciar ()", que leva o parâmetro de entrada de quantos elementos queremos gerar nas matrizes, e o segundo é "remodelar", que leva a ordem do Array como seu parâmetro de entrada.
Usando as duas matrizes que declaramos, passaremos para o parâmetro da função “NP. Einsum ("MK, KN", ARR1, ARR2) "Esta função calculará a multiplicação das duas matrizes, pois a lista de etiquetas subcritivas no parâmetro desta função é escolhida para essa multiplicação. Então, primeiro, a função verificará se a multiplicação de tal matriz é possível com base em suas dimensões e, se as dimensões permitirem, ele calculará sua multiplicação.
Quando executamos este programa no compilador Python, ele retornará uma matriz tridimensional que é o resultado da multiplicação das duas matrizes que definimos pela função “Organizar ().reShape () ”.
Conclusão
Este guia manual sobre como podemos usar os métodos Einsum da biblioteca Numpy. Mostramos como os resultados da mudança no parâmetro da função, i.e. Lista de rótulos subscrituros, pode afetar a saída da função e o processo computacional da função com a ajuda dos dois exemplos.