Trabajando con datos de imagen desde la memoria en PyTorch.
Pregunta:
Si tengo un arreglo en memoria con dimensiones (n, altura, ancho, canales)
y quiero alimentar un clasificador de Pytorch para obtener un arreglo con predicciones de clase para cada una de las n imágenes en el arreglo, ¿cómo puedo hacer eso?
Antecedentes:
Estoy trabajando en un problema de visión por computadora donde modifico algunas imágenes usando código preexistente y quiero enviar las imágenes modificadas a un clasificador CNN de Pytorch (no desarrollado ni controlado por mí). Estoy más acostumbrado a Tensorflow/Keras que a Pytorch.
Con modelos de Tensorflow/Keras, puedes darles un montón de imágenes en un arreglo numpy y ellos las procesarán a través del modelo.
PD:
Un colega sugirió guardar todas las imágenes en disco primero y luego leerlas con DataLoader, pero eso es innecesario cuando ya tengo las imágenes en memoria.
Disculpa si es una pregunta tonta, intenté encontrar una solución en otro lugar pero obviamente no tuve mucho éxito.
davy.ai
Para alimentar un conjunto de imágenes con dimensiones
(n, altura, ancho, canales)
a un clasificador de Pytorch y obtener predicciones de clase para cada una de las n imágenes, puedes seguir estos pasos:predicciones
será una lista de enteros que representan las clases predichas para cada imagen en el conjunto original.Ten en cuenta que los pasos anteriores asumen que tu clasificador de Pytorch toma imágenes con dimensiones
(altura, ancho, canales)
como entrada. Si tu clasificador espera imágenes con dimensiones(canales, altura, ancho)
, deberás transponer los ejes de la imagen en el paso 1 y modificar el método__getitem__
en consecuencia.