Я пытаюсь извлечь патчи из трехмерного изображения в качестве обучающих данных для нейронной сети. Но у меня проблемы с изменением формы патчей для больших изображений. В настоящее время я использую view_as_ windows, но я открыт для других методов, если они окажутся более полезными.
Пример того, как будет выглядеть мой код:
import numpy as np
from skimage.util import view_as_windows
kernel_size = 17
V = np.random.rand(150,150,150)
X = view_as_windows(V,(kernel_size,kernel_size,kernel_size),step=1)
Это создает массив numpy, имеющий размер (134,134,134,17,17,17)
. Теперь в идеале я хотел бы изменить его, чтобы он был размером (2406104,4913)
, но попытка изменить форму приводит к ошибке выделения:
X = X.reshape(134**3,17**3)
MemoryError: Unable to allocate 88.1 GiB for an array with shape (134, 134, 134, 17, 17, 17) and data type float64
Есть ли способ изменить мои патчи или есть лучший общий способ go об этом?