Pytorch - Argmin

Pytorch - Argmin
Pytorch é uma estrutura de código aberto para a linguagem de programação Python. Podemos processar os dados em pytorch na forma de um tensor.

Um tensor é uma matriz multidimensional que é usada para armazenar dados. Então, para usar um tensor, temos que importar o módulo da tocha.

Para criar um tensor, o método usado é tensor ().

Sintaxe:

tocha.Tensor (dados)

Onde os dados são uma matriz multidimensional.

argmin ()

argmin () em pytorch é usado para retornar o índice do valor mínimo de todos os elementos no tensor de entrada.

Sintaxe:
tocha.argmin (tensor, dim, keepdim)

Onde

  1. O tensor é o tensor de entrada.
  2. Dim é reduzir a dimensão. DIM = 0 Especifica a comparação de colunas, que receberá o índice para o valor mínimo ao longo de uma coluna, e Dim = 1 Especifica a comparação de linha, que receberá o índice para o valor mínimo ao longo da linha.
  3. KeepDim verifica se o tensor de saída tem dimensão (dim) retida ou não.

Exemplo 1:

Neste exemplo, criaremos um tensor com duas dimensões com três linhas e cinco colunas e aplicará argmin () nas linhas e colunas.

#import módulo tocha
importação de tocha
#Crie um tensor com 2 dimensões (3 * 5)
#com elementos aleatórios usando a função Randn ()
Dados = Torch.Randn (3,5)
#mostrar
Impressão (dados)
#get Índice mínimo ao longo de colunas com argmin
Imprimir (tocha.argmin (dados, dim = 0))
#get Índice mínimo ao longo de linhas com argmin
Imprimir (tocha.argmin (dados, dim = 1))

Saída:

Tensor ([[1.0604, -0.0234, 0.4258, -0.4714, 0.2778],
[-1.2597, -0.3892, 0.2120, 0.1376, 0.6919],
[0.0449, -0.3545, -0.1914, 0.1969, -2.0053]])
tensor ([1, 1, 2, 0, 2])
tensor ([3, 0, 4])

Como podemos ver, os valores mínimos dos índices e colunas são:

  1. Valor mínimo - -1.2597. Seu índice é 1.
  2. Valor mínimo - 1 -0.3892. Seu índice é 1.
  3. Valor mínimo - -0.1914. Seu índice é 2.
  4. Valor mínimo - 0.4714. Seu índice é 0.
  5. Valor mínimo - -2.0053. Seu índice é 2.

Da mesma forma, os valores mínimos presentes no índice ao longo das linhas são:

  1. Valor mínimo - -0.4714. Seu índice é 3.
  2. Valor mínimo - -1.2597. Seu índice é 0.
  3. Valor mínimo - -2.0053. Seu índice é 4.

Exemplo 2:

Crie um tensor com uma matriz de cinco por cinco e aplique argmin ().

#import módulo tocha
importação de tocha
#Crie um tensor com 2 dimensões (5 * 5)
#com elementos aleatórios usando a função Randn ()
Dados = Torch.Randn (5,5)
#mostrar
Impressão (dados)
#get Índice mínimo ao longo de colunas com argmin
Imprimir (tocha.argmin (dados, dim = 0))
#get Índice mínimo ao longo de linhas com argmin
Imprimir (tocha.argmin (dados, dim = 1))

Saída:

tensor ([[-1.7387, -0.7426, 0.5696, -0.6700, -1.0527],
[0.2564, -0.3471, 1.5256, -1.1608, 0.4367],
[1.4390, -0.5474, 0.5909, 0.0491, 0.4655],
[-0.7006, -0.0367, -0.9577, -0.0834, -0.7249],
[-1.9151, 2.3360, 1.1214, 0.4452, -1.1233]])
tensor ([4, 0, 3, 1, 4])
tensor ([0, 3, 1, 2, 0])

Podemos ver que os valores mínimos presentes no índice ao longo das colunas são:

  1. Valor mínimo - -1.9151. Seu índice é 4.
  2. Valor mínimo - -0.7426. Seu índice é 0.
  3. Valor mínimo - -0.9577. Seu índice é 3.
  4. Valor mínimo - -1.1608. Seu índice é 1.
  5. Valor mínimo - -1.1233. Seu índice é 4.

Da mesma forma, os valores mínimos no índice ao longo das linhas são:

  1. Valor mínimo - -1.7387. Seu índice é 0.
  2. Valor mínimo - -1.1608. Seu índice é 3.
  3. Valor mínimo - -0.5474. Seu índice é 1.
  4. Valor mínimo - -0.9577. Seu índice é 2.
  5. Valor mínimo - -1.9151. Seu índice é 0.

Trabalhe com a CPU

Se você deseja executar uma função argmin () na CPU, temos que criar um tensor com uma função CPU (). Isso será executado em uma máquina de CPU.

Neste momento, quando estamos criando um tensor, podemos usar a função CPU ().

Sintaxe:
tocha.Tensor (dados).CPU()

Exemplo 1:

Neste exemplo, criaremos um tensor com duas dimensões na CPU que possui três linhas e cinco colunas e aplique argmin () nas linhas e colunas.

#import módulo tocha
importação de tocha
#Crie um tensor com 2 dimensões (3 * 5)
#com elementos aleatórios usando randn () com função cpu ()
Dados = Torch.Randn (3,5).CPU()
#mostrar
Impressão (dados)
#get Índice mínimo ao longo de colunas com argmin
Imprimir (tocha.argmin (dados, dim = 0))
#get Índice mínimo ao longo de linhas com argmin
Imprimir (tocha.argmin (dados, dim = 1))

Saída:

Tensor ([[1.0604, -0.0234, 0.4258, -0.4714, 0.2778],
[-1.2597, -0.3892, 0.2120, 0.1376, 0.6919],
[0.0449, -0.3545, -0.1914, 0.1969, -2.0053]])
tensor ([1, 1, 2, 0, 2])
tensor ([3, 0, 4])

Como podemos ver, os valores mínimos para os índices e colunas são:

  1. Valor mínimo - -1.2597. Seu índice é 1.
  2. Valor mínimo - 1 -0.3892. Seu índice é 1.
  3. Valor mínimo - -0.1914. Seu índice é 2.
  4. Valor mínimo - 0.4714. Seu índice é 0.
  5. Valor mínimo - -2.0053. Seu índice é 2.

Da mesma forma, os valores mínimos no índice ao longo das linhas são:

  1. Valor mínimo - -0.4714. Seu índice é 3.
  2. Valor mínimo - -1.2597. Seu índice é 0.
  3. Valor mínimo - -2.0053. Seu índice é 4.

Exemplo 2:

Crie um tensor com uma matriz de cinco por cinco na CPU e aplique argmin ().

#import módulo tocha
importação de tocha
#Crie um tensor com 2 dimensões (5 * 5)
#com elementos aleatórios usando a função Randn ()
Dados = Torch.Randn (5,5).CPU()
#mostrar
Impressão (dados)
#get Índice mínimo ao longo de colunas com argmin
Imprimir (tocha.argmin (dados, dim = 0))
#get Índice mínimo ao longo de linhas com argmin
Imprimir (tocha.argmin (dados, dim = 1))

Saída:

tensor ([[-1.7387, -0.7426, 0.5696, -0.6700, -1.0527],
[0.2564, -0.3471, 1.5256, -1.1608, 0.4367],
[1.4390, -0.5474, 0.5909, 0.0491, 0.4655],
[-0.7006, -0.0367, -0.9577, -0.0834, -0.7249],
[-1.9151, 2.3360, 1.1214, 0.4452, -1.1233]])
tensor ([4, 0, 3, 1, 4])
tensor ([0, 3, 1, 2, 0])

Como podemos ver, os valores mínimos para os índices e colunas são:

  1. Valor mínimo - -1.9151. Seu índice é 4.
  2. Valor mínimo - -0.7426. Seu índice é 0.
  3. Valor mínimo - -0.9577. Seu índice é 3.
  4. Valor mínimo - -1.1608. Seu índice é 1.
  5. Valor mínimo - -1.1233. Seu índice é 4.

Da mesma forma, os valores mínimos no índice ao longo das linhas são:

  1. Valor mínimo - -1.7387. Seu índice é 0.
  2. Valor mínimo - -1.1608. Seu índice é 3.
  3. Valor mínimo - -0.5474. Seu índice é 1.
  4. Valor mínimo - -0.9577. Seu índice é 2.
  5. Valor mínimo - -1.9151. Seu índice é 0.

Conclusão

Nesta lição de Pytorch, vimos o que é argmin () e como aplicar argmin () a um tensor para retornar índices de valores mínimos entre colunas e linhas.

Também criamos um tensor com a função CPU () e retornamos índices de seus valores mínimos. DIM é o parâmetro usado para retornar índices de valores mínimos entre as colunas quando está definido como 0 e retornar índices de valores mínimos entre linhas quando está definido como 1.