Tensores bidimensionales en Pytorch

PyTorch es una biblioteca de Python desarrollada por Facebook para ejecutar y entrenar modelos de aprendizaje automático y aprendizaje profundo. En PyTorch todo se basa en operaciones de tensor.

Los tensores bidimensionales no son más que arrays o vectores de dos dimensiones con un tipo de datos específico, de n filas y n columnas.

Representación: Un tensor bidimensional tiene la siguiente representación.

torch.tensor([[3,2,1]
               [6,5,4]
               [9,8,7]]) 

Creación de tensores bidimensionales:

Podemos crear un tensor pasando una lista de datos o generando valores aleatoriamente con randn y también con la función de arreglo que toma valores dentro de ciertos intervalos. 

Ejemplo :

Python3

# importing library
import torch
 
 # list of data in 1d form
y=torch.tensor([2.5,5.6,8.1,4.6,3.2,6.7])
 
# reshaping it to 2d
x=y.view(2,3)
print('First tensor is: {}'.format(x),'\nSize of it:{}'.format(x.size()),
      '\ntype of tensor:{}\n'.format(x.dtype))
 
# random values of size 2X2
x2=torch.randn(2,2)
print('Second tensor is: {}'.format(x2),'\nSize of it:{}'.format(x2.size()),
      '\ntype of tensor:{}\n'.format(x2.dtype))
 
# integers within this range
y1=torch.arrange(0,8)
x1=y1.view(4,2)
print('Third tensor is: {}'.format(x1),'\nSize of it:{}'.format(x1.size()),
      '\ntype of tensor:{}'.format(x1.dtype))

Producción: 

First tensor is: tensor([[2.5000, 5.6000, 8.1000],
        [4.6000, 3.2000, 6.7000]]) 
Size of it:torch.Size([2, 3]) 
type of tensor:torch.float32

Second tensor is: tensor([[1.2532, 1.3558],
        [0.5496, 1.7828]]) 
Size of it:torch.Size([2, 2]) 
type of tensor:torch.float32

Third tensor is: tensor([[0, 1],
        [2, 3],
        [4, 5],
        [6, 7]]) 
Size of it:torch.Size([4, 2]) 
type of tensor:torch.int64

Multiplicación de tensores
 

La multiplicación de tensores puede ser una multiplicación por elementos (multiplicando cada elemento por elemento) o una multiplicación métrica (multiplicando la columna correspondiente con la fila correspondiente). En el aprendizaje profundo, usamos el concepto de multiplicación de métricas con el tamaño requerido.

Ejemplo :

Python3

import torch
 
a=torch.arrange(0,9)
 
# reshaping data
a=mat_a.view(3,3)
 
b=torch.arrange(0,9)
 
# reshaping data
b=mat_b.view(3,3)
 
mat_mul=torch.matmul(mat_a,mat_b)
elem_mul=torch.mul(mat_a,mat_b)
print('Tensor after elementwise multiplication:{}'.format(elem_mul),
      '\n Tensor after matrix multiplication: {}'.format(mat_mul))

Producción:

Tensor after elementwise multiplication:tensor([[ 0,  1,  4],
        [ 9, 16, 25],
        [36, 49, 64]]) 
 Tensor after matrix multiplication: tensor([[ 15,  18,  21],
        [ 42,  54,  66],
        [ 69,  90, 111]])

Acceso a elementos:

En el tensor, podemos acceder a los valores de cualquier columna o fila a través del corte, y para los elementos particulares usamos la indexación. Para obtener solo el valor en el tensor usamos .item().

Ejemplo :

Python3

import torch
 
# defining the tensor
x4=torch.arrange(4,13)
y4=x4.view(3,3)
 
# slicing is performed
print('First column has the values:{}'.format(y4[:,0]))
print('Second row has the values:{}'.format(y4[1,:]))
 
# indexing a  particular element
print('Data at the index 1,2 :{}'.format(y4[1][2]))

Producción:

First column has the values:tensor([ 4,  7, 10])
Second row has the values:tensor([7, 8, 9])
Data at the index 1,2 :9

Tensores tridimensionales :

Los tensores tridimensionales no son más que arrays o vectores de rango 3. Un tensor 3d se crea añadiendo otro nivel con corchetes al del vector bidimensional. En el procesamiento de imágenes, utilizamos imágenes RGB que tienen 3 dimensiones de píxeles de color.

Python3

import torch
 
# tensor with 3 dimension
x=torch.tensor([[[11,12,13],[14,15,16],[17,18,19]]])
 
# 1d tensor
x1=torch.arrange(10,19)
 
# reshaping it to 3d tensor
x1=x1.view(1,3,3)
print(x,'\n',x1)

Producción: 

tensor([[[11, 12, 13],
         [14, 15, 16],
         [17, 18, 19]]]) 
 tensor([[[10, 11, 12],
         [13, 14, 15],
         [16, 17, 18]]])
 

Publicación traducida automáticamente

Artículo escrito por barnadipdey2510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *