Как вычислить время вычисления машинного обучения и каковы контрольные значения? - PullRequest
0 голосов
/ 18 января 2019

во многих форумах и документах в Интернете мы слышим о «коротком» и «длинном» времени обучения и прогнозирования для алгоритмов машинного обучения. Например, алгоритм дерева решений имеет короткое время вычисления по сравнению с нейронными сетями. Но что никогда не упоминается, так это то, что является «коротким», а что «длинным».

Не могли бы вы уточнить, какую единицу измерения вы бы использовали для измерения времени вычислений? Может быть, «секунды на образец»? И каковы справочные значения, чтобы я мог предсказать, если это займет 1 час, 1 день или 1 неделя?

Спасибо С уважением G

1 Ответ

0 голосов
/ 18 января 2019

Прежде всего, любые контрольные показатели в решающей степени зависят от информации, которую вы не предоставили: домен, в котором вы находитесь, используемая топология, размеры входных данных и сложность выходных данных. Количество времени обучения зависит от всех этих факторов, структуры реализации и платформы, на которой вы работаете.

Например, я могу полностью тренироваться

model class: 4-node linear neural network 
model: AND gate
framework: none; Python / SciKit
platform: 32-node Intel Broadwell(tm) box

за три итерации, гораздо меньше, чем за секунду.

Однако, учитывая

model class: CNN 
model: ResNet-50
framework: TensorFlow
platform: Single-card, 4-core Intel Haswell(tm) box

Обучение займет несколько дней.

Единицы, в которых мы выражаем скорость, - это те, которые удобны для аудитории для домена. Для обработки неподвижных изображений мы обычно указываем размер изображения и отчет в изображениях / сек (иногда называемый «герц»). Для аудиовхода это обычно средняя длина клипа и количество клипов / сек - но если время обработки составляет O (n) , оно часто задается как скаляр. Машинный перевод выражается в словах или предложениях (типичной длины) в секунду.

Для менеджеров центров обработки данных также проводится обучение по электроэнергии: сколько киловатт-часов требуется для обучения конкретной модели?


Вы запросили эталонные значения: еще раз, прочитайте правила публикации. Контрольные значения для стандартных (то есть популярных и стабильных) моделей публикуются в режиме онлайн; Вы должны изучить их, прежде чем публиковать, чтобы помочь сфокусировать ваш вопрос. Они полезны, когда вы достаточно хорошо знаете ваше приложение , чтобы настроить эти цифры (оптимизированные для клиентов) в соответствии с вашей собственной средой.

Например, предположим, вы пытаетесь обучить ResNet-20 на базе данных ImageNet класса 100. Тем не менее, все, что вы можете найти, это цифры для ResNet-50 на оборудовании, которое у вас есть. К счастью, ResNet приблизительно линейно масштабируется по глубине: вы можете взять сравнимое время обучения ResNet-50 и умножить его на 20/50, чтобы получить приблизительную оценку. Мой опыт подсказывает, что вы должны рассчитывать на время тренировки 40-50% времени ResNet-50.

Аналогичным образом, если найденные вами цифры относятся только к ImageNet класса 1000, умножьте на 100/1000, чтобы рассчитать ожидаемое время обучения.


В целом, однако, ваш общий вопрос не имеет реального ответа, кроме как начать исследование, запустить вашу индивидуальную модель и узнать, как она работает, как она масштабируется, как она реагирует на изменения в аппаратной архитектуре, размере ввода, топология модели, целевое обучение и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...