Как вычислить время вычисления машинного обучения и каковы контрольные значения?

Импортирование всего из модуля не рекомендуется только из-за этих удивительных побочных эффектов: модуль random содержит функцию случайным образом, поэтому import * from random выполняет следующие действия:

from random import randrange
from random import random
...

Теперь, когда вы обращаетесь к random, вы получаете доступ к функции вместо модуля . Вы можете использовать randrange (без префикса random.), но import random и явным образом указывая, из какого модуля есть функция, является лучшей идеей.

-2
задан GB86 18 January 2019 в 08:54
поделиться

1 ответ

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

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

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, чтобы получить ожидаемое время обучения.


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

0
ответ дан Prune 18 January 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: