1 / 24 · Теория
Инференс и обучение
Если только число выходных каналов увеличится с трёх до шести, как изменятся число MAC и количество хранимых bias?
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Определите вычисление до тракта данных
Инференс применяет фиксированные, ранее выбранные веса к входу в прямом проходе. Обучение также вычисляет функцию потерь, распространяет градиенты и обновляет веса. Поэтому схема прямой свёртки демонстрирует операцию инференса; сама по себе она не демонстрирует обучение. Этот курс строит небольшой целочисленный путь инференса. Аппаратура градиентов, оптимизаторы, точность классификации и автоматический импорт моделей находятся за рамками упражнений.
Запишите требования к размеру пакета N, входным каналам C, пространственным размерам H и W, выходным каналам M и ядру R на S. Используется порядок NCHW. Обычный выходной элемент накапливает C×R×S произведений. Для выхода формы N×M×Ho×Wo считайте N×M×Ho×Wo×C×R×S MAC. Здесь один MAC — одно умножение с накоплением. Отчёт операций с плавающей точкой может считать умножение и сложение отдельно, поэтому задайте правило подсчёта до сравнения отчётов.
Разобранный пример
Возьмём N=1, C=2, H=W=5, M=3 и ядро 3×3 с шагом один и без дополнения. Пространственный выход — 3×3. Есть 27 выходных элементов, каждый накапливает 18 произведений, всего 486 MAC. Вектор bias содержит три хранимых числа, по одному на выходной канал, но bias добавляется в 27 выходных позициях. Сообщайте эти сложения отдельно, не меняя молча определение MAC.
Порядок — часть правильности. Чтение входа по каналам совместно с пространственной интерпретацией весов соединяет неверные операнды даже при допустимости каждого значения. Подписывайте эталонные выходы каналом и пространственными координатами. Начните с одного пакета, задайте каждый файл тензора и расширяйте пакетную размерность только после стабилизации базовой спецификации.
Записывайте принимаемые формы, шаги, дополнение и числовые диапазоны. Явно отклоняйте неподдерживаемые запросы. Гибкий программный массив не доказывает поддержку любого размера реализацией RTL. Эталонный выход также не измеряет частоту, мощность или точность модели. Следующие упражнения различают точные значения и оценку тактов с заявленными допущениями. Прямой проход, обратное распространение и обновление при обучении описаны в официальном руководстве PyTorch.
Попробуйте сами
Если только число выходных каналов увеличится с трёх до шести, как изменятся число MAC и количество хранимых bias?
Прочитать объяснение
Будет 54 выхода и 54×18=972 MAC. Храните шесть bias. Размер входа остаётся прежним; хранение весов удваивается.