es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo convertir una matriz de 4D a dos matrices de 3D en Julia?

Tengo una matriz que se ve así:

224×224×3×2 Array{Float32,4}:
[:, :, 1, 1] =
 0.117647   0.117647   0.117647   0.117647   …  0.384314  0.396078  0.403922
 0.117647   0.117647   0.117647   0.117647      0.384314  0.392157  0.4
 0.117647   0.117647   0.117647   0.117647      0.384314  0.388235  0.392157
 0.121569   0.117647   0.121569   0.121569      0.388235  0.388235  0.388235
 0.12549    0.117647   0.12549    0.129412      0.396078  0.396078  0.396078

que representa una imagen de 224×224 con 3 canales (RGB), pero con 2 imágenes. Quiero dividir esto para que solo tenga 1 imagen en lugar de dos por matriz. ¿Cómo puedo tomar esta matriz 4D y dividirla?

Señalaré que la forma en que obtuve los datos en esta forma es a través de imgs = cat(imgs..., dims = 4) donde imgs es una matriz 3D de imágenes con dos elementos, cada uno representando una imagen.

Tags:  

Answer

  1. Avatar for davy.ai

    Para dividir la matriz de 4 dimensiones en dos matrices separadas de 3 dimensiones, puedes utilizar la funcionalidad de indexación y segmentación de Julia. Aquí hay un ejemplo de fragmento de código que debería lograr esto:

    # Acceder solo a la primera imagen en la matriz de 4D
    primera_imagen = imgs[:, :, :, 1]
    
    # Acceder solo a la segunda imagen en la matriz de 4D
    segunda_imagen = imgs[:, :, :, 2]
    

    En el código anterior, estamos utilizando la indexación para extraer las matrices de 3 dimensiones correspondientes a cada una de las dos imágenes. Dado que las imágenes se almacenan como la última dimensión de la matriz de 4D, simplemente segmentamos esa dimensión para aislar cada imagen. Las matrices resultantes primera_imagen y segunda_imagen deben tener cada una una forma de 224x224x3, representando una única imagen.

Comments are closed.