Я пытаюсь использовать глубокое обучение (3D CNN) для классификации заболеваний головного мозга. В настоящее время размер входного сигнала установлен на 96 * 96 * 96. Это связано с тем, что исходное сканирование имеет размер 256 * 256 * 256. Сначала я удалил фон, изменив размер до 192 * 192 * 192, а затем уменьшил его в 2 раза.
Тем не менее, мой набор данных содержит только 825 предметов. Я хочу расширить набор данных до достаточного размера, но это меня очень беспокоит.
Во-первых, 96 ^ 3 дают 884 тыс. Вокселей для ввода. Исходя из моего прошлого опыта, количество обучающих выборок должно быть намного больше, чем количество единиц ввода. Итак, мой первый вопрос: Прав ли я, что данные обучения должны быть больше, чем входные единицы (в данном случае более 884 тыс.).
Во-вторых, чтобы выполнить увеличение данных, , какие методы рекомендуются ? До сих пор я пробовал вращение вокруг 3 осей с 10-градусным интервалом. Но это только увеличивает размер данных в 100 раз.
В-третьих, при обучении моделей, я использовал для добавления входных данных в список и использовал функцию разделения-тестирования-тестирования в sklearn для их разделения. Другой способ - использовать керас ImageDataGenerator.flow_from_directory. Однако сейчас я имею дело с трехмерными данными, и никакая память не может позволить себе загружать тысячи трехмерных массивов в целом. И ImageDataGenerator не поддерживает формат файла nifti. Можно ли как-нибудь подготовить все свои трехмерные массивы к тренировкам, не исчерпав моей памяти? (Я мог бы представить что-то вроде ImageDataGenerator. Конечно, я понимаю, что генератор данных отправляет данные в модель. за один раз. Поправь меня, если я ошибаюсь)