Calcule el logaritmo de elementos de un tensor en Pytorch

Calcule el logaritmo de elementos de un tensor en Pytorch
"En este tutorial de Pytorch, veremos cómo realizar funciones logarítmicas en un tensor dado.

Pytorch es un marco de código abierto disponible con un lenguaje de programación de Python.

Un tensor es una matriz multidimensional que se utiliza para almacenar los datos. Entonces, para usar un tensor, tenemos que importar el módulo de antorcha.

Para crear un tensor, el método utilizado es tensor () "

Sintaxis:

antorcha.Tensor (datos)

Donde los datos son una matriz multidimensional.

registro()

log () en pytorch se usa para devolver el logaritmo natural de todos los elementos presentes en el objeto tensor. Solo se necesita un parámetro.

Sintaxis:

antorcha.log (tensor_object)

Parámetro:

El tensor_object es el tensor de entrada

Ejemplo 1

En este ejemplo, crearemos un tensor con 3 dimensiones que tienen 3 filas y 5 columnas y aplicaremos log () en él.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (3 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (3,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtener valores logarítmicos
Imprimir ("Valores logarítmicos:")
imprimir (antorcha.Dato de registro))

Producción:

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 los valores de registro natural para todos los elementos en un tensor fueron devueltos.

Ejemplo 2

Crear tensor con 5 * 5 matriz y devolver valores de registro natural.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtener valores logarítmicos
Imprimir ("Valores logarítmicos:")
imprimir (antorcha.Dato de registro))

Producción:

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 los valores de registro natural para todos los elementos en un tensor fueron devueltos.

log10 ()

log10 () en pytorch se usa para devolver el logaritmo a la base 10 de todos los elementos presentes en el objeto tensor. Solo se necesita un parámetro.

Sintaxis:

antorcha.log10 (tensor_object)

Parámetro:

El tensor_object es el tensor de entrada

Ejemplo 1

En este ejemplo, crearemos un tensor con 3 dimensiones que tienen 3 filas y 5 columnas y aplicaremos log10 ().

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (3 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (3,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtenga valores logarítmicos a la base 10
Imprimir ("Valores logarítmicos a la base 10:")
imprimir (antorcha.log10 (datos))

Producción:

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 a la 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 los valores de registro a la base 10 para todos los elementos en un tensor fueron devueltos.

Ejemplo 2

Crear tensor con 5 * 5 matriz y devuelva valores de registro a la base 10.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtenga valores logarítmicos a la base 10
Imprimir ("Valores logarítmicos a la base 10:")
imprimir (antorcha.log10 (datos))

Producción:

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 a la 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 los valores de registro a la base 10 para todos los elementos en un tensor fueron devueltos.

log2 ()

log2 () en pytorch se usa para devolver el logaritmo a la base 2 de todos los elementos presentes en el objeto tensor. Solo se necesita un parámetro.

Sintaxis:

antorcha.log2 (tensor_object)

Parámetro:

El tensor_object es el tensor de entrada

Ejemplo 1

En este ejemplo, crearemos un tensor con 3 dimensiones que tienen 3 filas y 5 columnas y aplicaremos log2 () en él.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (3 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (3,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtenga valores logarítmicos a la base 2
Imprimir ("Valores logarítmicos a la base 2:")
imprimir (antorcha.log2 (datos))

Producción:

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 a la 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 los valores de registro a la base 2 para todos los elementos en un tensor fueron devueltos.

Ejemplo 2

Crear tensor con 5 * 5 matriz y devolver los valores de registro a la base 2.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5)
#mostrar
Imprimir (datos)
imprimir()
#Obtenga valores logarítmicos a la base 2
Imprimir ("Valores logarítmicos a la base 2:")
imprimir (antorcha.log2 (datos))

Producción:

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 a la 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 los valores de registro a la base 2 para todos los elementos en un tensor fueron devueltos.

Trabajar con CPU

Si desea ejecutar una función logarítmica en la CPU, entonces tenemos que crear un tensor con una función CPU (). Esto se ejecutará en una máquina CPU.

Cuando estamos creando un tensor, en este momento, podemos usar la función CPU ().

Sintaxis:

antorcha.Tensor (datos).UPC()

Ejemplo

Cree tensor con una matriz 5 * 5 en la CPU y devuelva los valores de registro natural, los valores de registro con base2 y los valores de registro con la base 10.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5).UPC()
#mostrar
Imprimir (datos)
imprimir()
#Obtenga valores de registro natural
Imprimir ("Valores de registro natural:")
imprimir (antorcha.Dato de registro))
imprimir()
#Obtenga valores logarítmicos a la base 2
Imprimir ("Valores logarítmicos a la base 2:")
imprimir (antorcha.log2 (datos))
imprimir()
#Obtenga valores logarítmicos a la base 10
Imprimir ("Valores logarítmicos a la base 10:")
imprimir (antorcha.log10 (datos))

Producción:

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 de registro natural:
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 a la 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 a la 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 los valores de registro a la base 2, los valores de registro a la base 10 y los valores de registro naturales para todos los elementos en un tensor se devolvieron.

Conclusión

En esta lección de Pytorch, vimos tres tipos de funciones logarítmicas utilizadas para devolver valores logarítmicos para todos los elementos en un tensor. antorcha.log () es una función logarítmica simple utilizada para devolver el logaritmo natural de todos los elementos presentes en el objeto tensor.log10 () se usa para devolver el logaritmo a la base 10 de todos los elementos presentes en el objeto tensor, y log2 () se usa para devolver el logaritmo a la base 2 de todos los elementos presentes en el objeto tensor. También discutimos cómo aplicar estas funciones mientras trabajábamos con CPU.