Согласно моему прошлому опыту, успешно применяя трансферное обучение с фондового рынка к бизнес-прогнозу, вы должны сохранять первоначальную структуру, потому что, если вы осуществляете трансферное обучение, вы захотите загружать обученные веса из исходной структуры, без проблем, связанных с различиями вархитектура нейронной сети. Затем вы разморозите части CNN, и ваша тренировка нейронной сети начнет тренировку с высокой точностью и адаптирует веса к целевой задаче.
Однако, если вы удалите слой Flatten
, вычислительные затраты будут уменьшаться по мере того, как выу меня будет меньше параметров для обучения.
Я придерживаюсь правила сохранения нейронных сетей как можно более простым (равным большим обобщающим свойствам), с высокой эффективностью.
@ Kamen, как дополнение к вашемуКомментарий, касающийся того, сколько данных вам понадобится, зависит от дисперсии ваших данных. Больше дисперсии, вам нужно больше слоев и весов, чтобы изучить детали. Однако, когда вы увеличиваете сложность в архитектуре, ваша нейронная сеть будет более склонна к переобучению, чем может быть уменьшена, например, с помощью Dropout.
Поскольку полностью связанные слои являются более дорогой частью нейронной сети,если вы добавите один или два из них, ваш номер параметра значительно увеличится, что потребует больше времени для обучения. Чем больше слоев, тем выше точность, но у вас может быть переобучение.
Например, MNIST с 10 000 примеров может достичь точности более 99% при довольно простой архитектуре. Однако IMAGENET имеет 1 000 000 примеров (155 ГБ), а затем требует более сложной структуры, например VGG16.