Pytorch - máx

Pytorch - máx
Veremos como retornar os valores máximos de um tensor usando max () neste tutorial de pytorch.

Pytorch é uma estrutura de código aberto disponível com uma linguagem de programação Python. Tensor é uma matriz multidimensional usada para armazenar os dados. 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.

Max ()

Max () em pytorch é usado para retornar o máximo de elementos presentes no objeto Tensor de entrada.

Sintaxe:

tocha.Max (tensor, dim)

Onde:

1. O tensor é o tensor de entrada.

2. Dim é reduzir a dimensão. Dim = 0 Especifica a comparação da coluna que obtém os valores máximos ao longo de uma coluna e Dim = 1 Especifica a comparação de linha, que obtém os valores máximos ao longo da linha.

Retornar:

Ele também retorna os índices de valores máximos.

Exemplo 1:

Neste exemplo, criaremos um tensor com 2 dimensões que possuem 3 linhas e 5 colunas e apliquem a função max () em 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)
imprimir()
#get valores máximos ao longo de colunas
print ("Valores máximos nas colunas:")
Imprimir (tocha.max (dados, dim = 0))
imprimir()
#get valores máximos ao longo de linhas
print ("Valores máximos entre linhas:")
Imprimir (tocha.max (dados, dim = 1))

Saída:

tensor ([[-0.4322, -1.9488, -1.9488, -0.1291, 2.0196],
[0.0421, -0.7765, -1.4377, 1.3680, -0.1703],
[1.2953, 0.2773, 0.5380, 0.1011, 0.0136]])
Valores máximos nas colunas:
tocha.return_types.Max (
valores = tensor ([1.2953, 0.2773, 0.5380, 1.3680, 2.0196]),
índices = tensor ([2, 2, 2, 1, 0])))
Valores máximos entre linhas:
tocha.return_types.Max (
valores = tensor ([2.0196, 1.3680, 1.2953]),
índices = tensor ([4, 3, 0])))

Podemos ver que os valores máximos são retornados através das colunas e linhas junto com seus índices.

Exemplo 2:

Crie um tensor com 5 * 5 matriz e retorne os valores máximos nas linhas e colunas.

#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)
imprimir()
#get valores máximos ao longo de colunas
print ("Valores máximos nas colunas:")
Imprimir (tocha.max (dados, dim = 0))
imprimir()
#get valores máximos ao longo de linhas
print ("Valores máximos entre linhas:")
Imprimir (tocha.max (dados, dim = 1))

Saída:

Tensor ([[1.5677, -0.8765, -1.7053, -0.4323, 1.1156],
[1.0781, -0.6891, 1.1491, -0.7799, 1.8014],
[-0.0449, 1.6926, -0.9708, -0.1957, 0.6765],
[-0.0336, 0.2317, -1.5785, -0.1141, -0.4226],
[0.2535, -0.2302, -0.1518, -0.6725, -0.6502]])
Valores máximos nas colunas:
tocha.return_types.Max (
valores = tensor ([1.5677, 1.6926, 1.1491, -0.1141, 1.8014]),
índices = tensor ([0, 2, 1, 3, 1])))
Valores máximos entre linhas:
tocha.return_types.Max (
valores = tensor ([1.5677, 1.8014, 1.6926, 0.2317, 0.2535]),
índices = tensor ([0, 4, 1, 1, 0])))

Podemos ver que os valores máximos entre as linhas e colunas foram devolvidos junto com seus índices.

Sem o parâmetro DIM

Se não especificarmos o parâmetro DIM, ele retornará o valor máximo de todo o tensor.

Exemplo 1:

Crie um tensor 2D com 5*5 matriz e retorne o valor máximo.

#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)
imprimir()
#get valor máximo
Imprimir ("Valor máximo:")
Imprimir (tocha.max (dados))

Saída:

Tensor ([[1.5618, 0.5195, -0.2018, 0.7128, 0.0599],
[-2.4063, -0.0888, -0.3935, 0.2521, 1.3079],
[-1.1231, -0.3366, -1.5907, -1.6770, -0.2147],
[-0.7070, -1.5281, 0.2971, 1.8376, -1.6415],
[-0.8639, 0.5545, 1.2174, -1.3734, -0.7389]])
Valor máximo :
Tensor (1.8376)

Exemplo 2:

Crie um tensor 1D com 5 valores e retorne o valor máximo.

#import módulo tocha
importação de tocha
#Crie um tensor com 5 valores numéricos
Dados = Torch.Tensor ([10.6,20.7,30.6,40.4,50.0])
#mostrar
Impressão (dados)
imprimir()
#get valor máximo
Imprimir ("Valor máximo:")
Imprimir (tocha.max (dados))

Saída:

Tensor ([10.6000, 20.7000, 30.6000, 40.4000, 50.0000])
Valor máximo :
Tensor (50.)

Trabalhe com a CPU

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

Quando criamos um tensor, desta vez, podemos usar a função CPU ().

Sintaxe:

tocha.Tensor (dados).CPU()

Exemplo 1:

Neste exemplo, criaremos um tensor com 2 dimensões que possuem 3 linhas e 5 colunas com uma função CPU () e aplique a função max () em 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).CPU()
#mostrar
Impressão (dados)
imprimir()
#get valores máximos ao longo de colunas
print ("Valores máximos nas colunas:")
Imprimir (tocha.max (dados, dim = 0))
imprimir()
#get valores máximos ao longo de linhas
print ("Valores máximos entre linhas:")
Imprimir (tocha.max (dados, dim = 1))

Saída:

tensor ([[-0.1843, 0.0419, -0.0474, 0.3713, -0.6861],
[-0.4083, -0.4918, -1.7254, 1.3483, -0.7855],
[-0.2685, 0.5834, 0.4953, -1.1605, -0.0414]])
Valores máximos nas colunas:
tocha.return_types.Max (
valores = tensor ([-0.1843, 0.5834, 0.4953, 1.3483, -0.0414]),
índices = tensor ([0, 2, 2, 1, 2])))
Valores máximos entre linhas:
tocha.return_types.Max (
valores = tensor ([0.3713, 1.3483, 0.5834]),
índices = tensor ([3, 3, 1])))

Podemos ver que os valores máximos são retornados através das colunas e linhas junto com seus índices.

Exemplo 2:

Crie um tensor com 5 * 5 matriz com a função CPU () e retorne os valores máximos nas linhas e colunas.

#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)
imprimir()
#get valores máximos ao longo de colunas
print ("Valores máximos nas colunas:")
Imprimir (tocha.max (dados, dim = 0))
imprimir()
#get valores máximos ao longo de linhas
print ("Valores máximos entre linhas:")
Imprimir (tocha.max (dados, dim = 1))

Saída:

Tensor ([[2.2844E+00, 1.0477E+00, -7.5003E-01, 6.2289E-01, 3.6587E-01],
[1.4600E+00, -9.5055E-01, 1.0254E+00, 9.8235E-01, 1.6930E+00],
[-1.6253E-01, 4.6555E-02, 1.1996e+00, -1.0124E+00, 9.4128E-01],
[1.6245E-01, 6.3275E -01, -2.4493E -01, -1.2998E+00, -4.8166e-01],
[-1.7680E+00, 1.2203E-01, 1.9420E -03, -6.2728E-01, 5.9291E-01]])
Valores máximos nas colunas:
tocha.return_types.Max (
valores = tensor ([2.2844, 1.0477, 1.1996, 0.9824, 1.6930]),
índices = tensor ([0, 0, 2, 1, 1])))
Valores máximos entre linhas:
tocha.return_types.Max (
valores = tensor ([2.2844, 1.6930, 1.1996, 0.6327, 0.5929]),
índices = tensor ([0, 4, 2, 1, 4])))

Podemos ver que os valores máximos entre as linhas e colunas foram devolvidos junto com seus índices.

Conclusão

Nesta lição de Pytorch, aprendemos sobre a função max () e como aplicá -la em um tensor para retornar os valores máximos nas colunas e linhas. Ele também retorna as posições do índice junto com os valores máximos retornados.

Também criamos um tensor com a função CPU () e retornamos os valores máximos. Se o dim não for especificado em tensor de dois ou multidimensionais, ele retornará o valor máximo de todo o tensor.