Calcule o logaritmo de elementos de um tensor em Pytorch

Calcule o logaritmo de elementos de um tensor em Pytorch
“Neste tutorial de Pytorch, veremos como executar funções logarítmicas em um determinado tensor.

Pytorch é uma estrutura de código aberto disponível com uma linguagem de programação Python.

Um tensor é uma matriz multidimensional que é usada para armazenar os 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.

registro()

log () em pytorch é usado para retornar o logaritmo natural de todos os elementos presentes no objeto Tensor. É preciso apenas um parâmetro.

Sintaxe:

tocha.log (tensor_object)

Parâmetro:

O tensor_object é o tensor de entrada

Exemplo 1

Neste exemplo, criaremos um tensor com três dimensões que possuem 3 linhas e 5 colunas e apliquem log ().

#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 logarítmicos
print ("valores logarítmicos:")
Imprimir (tocha.log (dados)))

Saída:

tensor ([[-1.0134, -0.0345, 0.0841, 0.7704, 0.3895],
[0.5293, -0.9141, 0.4486, -1.1050, -0.1396],
[-2.7476, -1.6378, -0.3021, 0.0936, 1.9816]])
Valores logarítmicos:
tensor ([[nan, nan, -2.4762, -0.2608, -0.9429],
[-0.6361, NAN, -0.8017, nan, nan],
[nan, nan, nan, -2.3682, 0.6839]])

Podemos ver que os valores naturais de log para todos os elementos em um tensor foram devolvidos.

Exemplo 2

Crie tensor com 5 * 5 matriz e retorne valores de log natural.

#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 logarítmicos
print ("valores logarítmicos:")
Imprimir (tocha.log (dados)))

Saída:

tensor ([[-0.2143, 0.4640, -0.7694, 0.2063, 0.1471],
[-0.9600, 0.3431, 0.0933, -0.7847, -0.6198],
[1.9533, 0.7456, -0.8035, -0.2091, -2.1858],
[-0.3841, 0.4142, -1.6795, -1.3310, 1.5622],
[0.3093, 0.6724, 0.5488, -1.3811, 1.6062]])
Valores logarítmicos:
tensor ([[nan, -0.7679, Nan, -1.5782, -1.9169],
[Nan, -1.0698, -2.3719, nan, nan],
[0.6695, -0.2936, nan, nan, nan],
[NAN, -0.8815, nan, nan, 0.4461],
[-1.1735, -0.3969, -0.6001, nan, 0.4739]])

Podemos ver que os valores naturais de log para todos os elementos em um tensor foram devolvidos.

log10 ()

log10 () em pytorch é usado para retornar o logaritmo à base 10 de todos os elementos presentes no objeto Tensor. É preciso apenas um parâmetro.

Sintaxe:

tocha.log10 (tensor_object)

Parâmetro:

O tensor_object é o tensor de entrada

Exemplo 1

Neste exemplo, criaremos um tensor com 3 dimensões que possuem 3 linhas e 5 colunas e apliquem log10 ().

#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 logarítmicos para a base 10
print ("Valores logarítmicos para a base 10:")
Imprimir (tocha.log10 (dados))

Saída:

tensor ([[0.1137, 1.8604, 0.1547, 0.1092, 0.0385],
[-1.2716, 1.8937, -0.4259, 0.4512, 0.5377],
[-1.3074, 2.2634, 1.0972, -0.3502, 0.4971]])
Valores logarítmicos para a base 10:
tensor ([[-0.9441, 0.2696, -0.8105, -0.9617, -1.4140],
[Nan, 0.2773, NAN, -0.3456, -0.2695],
[Nan, 0.3548, 0.0403, NAN, -0.3035]])

Podemos ver que os valores de log para a base 10 para todos os elementos em um tensor foram devolvidos.

Exemplo 2

Crie tensor com 5 * 5 matriz e retorne valores de log para a base 10.

#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 logarítmicos para a base 10
print ("Valores logarítmicos para a base 10:")
Imprimir (tocha.log10 (dados))

Saída:

tensor ([[-0.2903, -0.1354, -0.7794, -0.5695, -0.7214],
[0.5197, 0.5463, 1.4539, 0.0285, -0.7019],
[-0.0714, -1.2804, 0.0606, 1.1813, 0.9769],
[0.2130, 1.1354, 0.2970, -0.2755, -0.0466],
[2.8192, -0.9078, 0.5023, 1.1128, 0.3141]])
Valores logarítmicos para a base 10:
Tensor ([[nan, nan, nan, nan, nan],
[-0.2842, -0.2626, 0.1625, -1.5455, NAN],
[nan, nan, -1.2177, 0.0724, -0.0101],
[-0.6717, 0.0551, -0.5273, nan, nan],
[0.4501, NAN, -0.2990, 0.0464, -0.5029]])

Podemos ver que os valores de log para a base 10 para todos os elementos em um tensor foram devolvidos.

log2 ()

Log2 () em Pytorch é usado para retornar o logaritmo à base 2 de todos os elementos presentes no objeto Tensor. É preciso apenas um parâmetro.

Sintaxe:

tocha.log2 (tensor_object)

Parâmetro:

O tensor_object é o tensor de entrada

Exemplo 1

Neste exemplo, criaremos um tensor com três dimensões que possuem 3 linhas e 5 colunas e apliquem log2 ().

#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 logarítmicos para a base 2
print ("Valores logarítmicos para a base 2:")
Imprimir (tocha.log2 (dados))

Saída:

tensor ([[-0.0242, 0.6124, -1.2847, -0.2737, 1.2455],
[-0.5786, -0.1747, 0.6064, -0.5265, 0.3504],
[-0.3898, 0.5609, -0.0565, 0.5324, 0.0105]])
Valores logarítmicos para a base 2:
tensor ([[nan, -0.7075, nan, nan, 0.3168],
[nan, nan, -0.7216, nan, -1.5128],
[NAN, -0.8342, NAN, -0.9095, -6.5752]])

Podemos ver que os valores de log para a base 2 para todos os elementos em um tensor foram devolvidos.

Exemplo 2

Crie tensor com 5 * 5 matriz e retorne valores de log para a base 2.

#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 logarítmicos para a base 2
print ("Valores logarítmicos para a base 2:")
Imprimir (tocha.log2 (dados))

Saída:

Tensor ([[3.0918, 0.2328, 0.6354, -0.6991, 2.1373],
[-1.2590, -1.5860, -0.1142, -0.1805, -1.9556],
[1.2391, 1.0197, 0.1663, 0.9892, -1.4073],
[0.0174, 0.8185, 0.3453, -0.7556, 1.0040],
[-1.0775, 0.4131, -0.7916, -0.9372, 0.1482]])
Valores logarítmicos para a base 2:
Tensor ([[1.6285E+00, -2.1029e+00, -6.5418E-01, NAN, 1.0958E+00],
[Nan, Nan, Nan, Nan, Nan],
[3.0926E-01, 2.8108E -02, -2.5882E+00, -1.5649E-02, NAN],
[-5.8447E+00, -2.8896E -01, -1.5339e+00, nan, 5.7767E-03],
[Nan, -1.2754e+00, nan, nan, -2.7546E+00]])

Podemos ver que os valores de log para a base 2 para todos os elementos em um tensor foram devolvidos.

Trabalhe com a CPU

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

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

Sintaxe:

tocha.Tensor (dados).CPU()

Exemplo

Crie tensor com 5 * 5 matriz na CPU e retorne valores de log natural, valores de log com base2 e valores de log com a base 10.

#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 de log natural
Imprima ("Valores naturais de log:")
Imprimir (tocha.log (dados)))
imprimir()
#get valores logarítmicos para a base 2
print ("Valores logarítmicos para a base 2:")
Imprimir (tocha.log2 (dados))
imprimir()
#get valores logarítmicos para a base 10
print ("Valores logarítmicos para a base 10:")
Imprimir (tocha.log10 (dados))

Saída:

tensor ([[-0.2807, 0.0260, 0.3326, -0.1958, 2.7080],
[1.3534, -0.2371, 0.0085, 0.1877, 1.4870],
[1.2967, 0.4262, -0.6323, 0.4446, 3.0513],
[0.4478, -0.0436, -0.4577, 1.3098, 0.7293],
[-0.4575, -1.4020, -0.9323, -0.4406, 0.5844]])
Valores naturais de log:
tensor ([[nan, -3.6494, -1.1009, nan, 0.9962],
[0.3026, NAN, -4.7711, -1.6731, 0.3968],
[0.2598, -0.8529, NAN, -0.8107, 1.1156],
[-0.8034, nan, nan, 0.2699, -0.3157],
[Nan, Nan, Nan, Nan, -0.5371]])
Valores logarítmicos para a base 2:
Tensor ([Nan, -5.2650, -1.5882, nan, 1.4372],
[0.4366, NAN, -6.8833, -2.4138, 0.5724],
[0.3748, -1.2304, NAN, -1.1696, 1.6094],
[-1.1591, nan, nan, 0.3893, -0.4554],
[Nan, Nan, Nan, Nan, -0.7749]])
Valores logarítmicos para a base 10:
tensor ([[nan, -1.5849, -0.4781, nan, 0.4327],
[0.1314, Nan, -2.0721, -0.7266, 0.1723],
[0.1128, -0.3704, NAN, -0.3521, 0.4845],
[-0.3489, nan, nan, 0.1172, -0.1371],
[Nan, Nan, Nan, Nan, -0.2333]])

Podemos ver que os valores de log para a base 2, valores de log para a base 10 e valores naturais de log para todos os elementos em um tensor foram retornados.

Conclusão

Nesta lição de Pytorch, vimos três tipos de funções logarítmicas usadas para retornar valores logarítmicos para todos os elementos em um tensor. tocha.Log () é uma função logarítmica simples usada para retornar o logaritmo natural de todos os elementos presentes no objeto Tensor.Log10 () é usado para retornar o logaritmo à base 10 de todos os elementos presentes no objeto Tensor, e Log2 () é usado para retornar o logaritmo à base 2 de todos os elementos presentes no objeto tensor. Também discutimos como aplicar essas funções enquanto estávamos trabalhando com a CPU.