[Registro de error de código] muestra la imagen del conjunto de datos: problema del tensor de la imagen

La función matplotlib drawing imshow () informa un error "Error de tipo: dimensiones no válidas para datos de imagen"

código de error

plt.imshow((img[6, :, :, :].moveaxis(0, 2)))

cambiado a

plt.imshow((img[6, :, :, :]))

Tipo de errorError
: dimensiones no válidas para datos de imagen"

cambie a:

plt.imshow((img[6, :, :, :].squeeze().numpy().transpose(1,2,0)))

Referencia
La clave para resolver este problema es comprender los parámetros de la función imshow.
La entrada de la función matplotlib.pyplot.imshow() debe ser un numpy bidimensional o un numpy con una tercera dimensión de 3 o 4,

  • Cuando la profundidad de la tercera dimensión sea 1, utilice la función np.squeeze() para comprimir los datos en una matriz bidimensional.
  • Debido a que lo uso en el entorno pytorch, la salida del resultado es un tensor de (batch_size, channel, width, height), por lo que primero necesito la función detach() para cortar la retropropagación.
  • Cabe señalar que imshow no es compatible con la visualización de tensor, por lo que necesito usar la función .cpu() para transferir a la CPU.
  • Como se mencionó anteriormente, la entrada de la función imshow debe ser un numpy bidimensional o un numpy con una tercera dimensión de 3 o 4.
  • Debido a que mi caso de uso es bastante especial,Hay una dimensión más de tamaño de lote, pero afortunadamente, configuré el tamaño del lote en solo 1. En este momento, puedo usar la función .squeeze() para eliminar 1 y obtener un número de (canal, ancho, alto), que obviamente no coincide con los requisitos de entrada de mostrar Por lo tanto, necesitamos usar la función de transposición para mover el canal (= 3) hasta el final, razón por la cual existe tal uso de .transpose (1,2,0). Por supuesto, si la imagen que se va a mostrar es el canal = 1, puede usar la función squeeze() para deshacerse de ella e ingresar directamente un numpy bidimensional en la función imshow.

Supongo que te gusta

Origin blog.csdn.net/zhe470719/article/details/127163650
Recomendado
Clasificación