Хотя может показаться, что неэффективно разбивать изображение на более мелкие участки перед тренировкой вашей модели, у него есть одно огромное преимущество. Перед началом обучения оптимизатор перетасовывает все выборки данных, что, в свою очередь, приводит к менее смещенной модели. Однако, если вы подаете свою модель одно изображение за другим, а затем оптимизатор разбивает его на более мелкие участки, он все равно обучается на участках одного изображения.
Чтобы эффективно разбить изображение на небольшие участки, вы можете использовать:
skimage.util.view_as_windows(arr_in, window_shape, step=1)
Вы можете определить форму окна и шаг скользящего окна. Например:
>>> import numpy as np
>>> from skimage.util.shape import view_as_windows
>>> A = np.arange(4*4).reshape(4,4)
>>> A
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> window_shape = (2, 2)
>>> B = view_as_windows(A, window_shape)
>>> B[0, 0]
array([[0, 1],
[4, 5]])
>>> B[0, 1]
array([[1, 2],
[5, 6]])