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