¿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.
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:
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
ysegunda_imagen
deben tener cada una una forma de224x224x3
, representando una única imagen.