En este artículo, veremos cómo convertir una imagen en un PyTorch Tensor. Un tensor en PyTorch es como una array NumPy que contiene elementos de los mismos tipos de d.
Un tensor puede ser de tipo escalar, unidimensional o multidimensional. Para convertir una imagen en un tensor en PyTorch, usamos las transformaciones PILToTensor() y ToTensor() . Estas transformaciones se proporcionan en el paquete torchvision.transforms . Usando estas transformaciones, podemos convertir una imagen PIL o un numpy.ndarray . El numpy.ndarray debe estar en formato [H, W, C], donde H, W y C son la altura, el ancho y la cantidad de canales de la imagen.
transform = transforma.Compose([transforma.PILToTensor()])
tensor = transformar (img)
Esta transformación convierte una imagen PIL en un tensor de tipo de datos torch.uint8 en el rango entre 0 y 255 . Aquí img es una imagen PIL.
transform = transforma.Compose([transforma.ToTensor()])
tensor = transformar (img)
Esta transformación convierte cualquier numpy.ndarray en un tensor de antorcha de tipo de datos torch.float32 en el rango 0 y 1 . Aquí img es un numpy.ndarray .
Acercarse:
- Importe las bibliotecas necesarias.
- Lea la imagen de entrada. La imagen de entrada es una imagen PIL o una array NumPy N-dimensional.
- Defina la transformación para convertir la imagen en Torch Tensor. Definimos una transformación usando transforms.Compose() . Puede usar directamente transforms.PILToTensor() o transforms.ToTensor() .
- Convierta la imagen en tensor utilizando la transformación definida anteriormente.
- Imprime los valores del tensor.
La siguiente imagen se utiliza como imagen de entrada en ambos ejemplos:
Ejemplo 1:
En el siguiente ejemplo, convertimos una imagen PIL a Torch Tensor.
Python3
# Import necessary libraries import torch from PIL import Image import torchvision.transforms as transforms # Read a PIL image image = Image.open('iceland.jpg') # Define a transform to convert PIL # image to a Torch tensor transform = transforms.Compose([ transforms.PILToTensor() ]) # transform = transforms.PILToTensor() # Convert the PIL image to Torch tensor img_tensor = transform(image) # print the converted Torch tensor print(img_tensor)
Producción:
Observe que el tipo de datos del tensor de salida es torch.uint8 y los valores están en el rango [0,255] .
Ejemplo 2:
En este ejemplo, leemos una imagen RGB usando OpenCV . El tipo de imagen que se lee con OpenCV es numpy.ndarray . Lo convertimos en un tensor de antorcha usando transform ToTensor() .
Python3
# Import required libraries import torch import cv2 import torchvision.transforms as transforms # Read the image image = cv2.imread('iceland.jpg') # Convert BGR image to RGB image image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Define a transform to convert # the image to torch tensor transform = transforms.Compose([ transforms.ToTensor() ]) # Convert the image to Torch tensor tensor = transform(image) # print the converted image tensor print(tensor)
Producción:
Observe que el tipo de datos del tensor de salida es torch.float32 y los valores están en el rango [0, 1].
Publicación traducida automáticamente
Artículo escrito por shahidedu7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA