Я встречал эту фразу несколько раз раньше, в основном в контексте нейронных сетей и тензорного потока, но у меня сложилось впечатление, что это что-то более общее и не ограниченное этими средами.
здесь, например, говорят, что этот процесс "разогрева свертки" занимает около 10 тысяч итераций.
зачем извилины нужно разогревать? что мешает им сразу набрать максимальную скорость?
одна вещь, о которой я могу думать, - это выделение памяти. если это так, я бы ожидал, что он будет решен после 1 (или, по крайней мере, <10) итераций. почему 10к?
отредактируйте для пояснения: я понимаю, что разминка - это период времени или количество итераций, которые необходимо выполнить, пока оператор свертки не достигнет максимальной скорости (время на оператора). Я спрашиваю - зачем это нужно и что происходит за это время, что ускоряет свертку?

Обучающие нейронные сети работают, предлагая обучающие данные, вычисляя ошибку вывода и распространяя ошибку обратно на отдельные соединения. Для нарушения симметрии обучение начинается не со всех нулей, а со случайной силы связи.
Оказывается, при случайной инициализации первые итерации обучения не очень эффективны. Сеть далеко не соответствует желаемому поведению, поэтому рассчитанные ошибки велики. Обратное распространение этих больших ошибок приведет к перерегулированию.
Фаза разогрева предназначена для того, чтобы увести начальную сеть от случайной сети и приблизить ее к желаемой сети в первом приближении. Как только приближение будет достигнуто, скорость обучения может быть увеличена.
Это эмпирический результат. Количество итераций будет зависеть от сложности вашей программной области и, следовательно, от сложности необходимой сети. Сверточные нейронные сети довольно сложны, поэтому для них важнее разминка.
@akonsk: Кажется, вы единственный, кто утверждает, что таймер на итерацию меняется.
Я должен признать, что я не мог найти больше примеров в Google прямо сейчас, но я совершенно уверен, что встречал эту фразу в этом контексте еще как минимум 1 раз. Итак, как бы вы интерпретировали комментарий о разминке (в разделе «Скорость») в приведенной мной ссылке?
@akonsk: Я бы интерпретировал это как скорость обучения, иначе говоря, скорость обучения. Это константа, которая определяет, сколько изменений вы передаете с учетом определенного вектора ошибки после прямого распространения. Сначала вы вносите небольшие изменения в сеть, поскольку она все еще случайна.
Не только вы утверждаете, что таймер на итерацию различается. Я провожу тот же пример и получаю тот же вопрос, и я могу сказать, что основная причина - различная форма входного изображения и номер объекта для обнаружения. Предлагаю свой результат теста обсудить. Сначала я включаю трассировку и получаю временную шкалу, затем я обнаружил, что вхождения Conv2D различаются между шагами в потоке gpu all compulte. Затем я использую экспорт TF_CUDNN_USE_AUTOTUNE = 0, чтобы отключить автонастройку. то на временной шкале есть такое же количество Conv2D, а время составляет около 0,4 с.
временные затраты все же разные, но гораздо ближе!
спасибо за быстрый ответ, но я боюсь, что этот ответ не решает мою главную проблему - почему требуется так много итераций для достижения максимальной скорости (= время на итерацию или время на свертку). просто для ясности - я не имел отношения к скорости обучения, которая, насколько мне известно, не влияет на время на операцию свертки (или, в общем, на время на итерацию). в любом случае готовьтесь к быстрому ответу! :)