1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/duping812-jetson-inference

Клонировать/Скачать
pytorch-transfer-learning.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 15:38 5e07e18

Назад | Вперед | Содержание
Переносное обучение

# Переносное обучение с PyTorch Переносное обучение — это техника для перетренировки модели глубокой нейронной сети (DNN) на новом наборе данных, что занимает меньше времени, чем обучение сети с нуля. С переносным обучением веса предварительно обученной модели подстраиваются для классификации кастомизированного набора данных. В этих примерах мы будем использовать сети ResNet-18 и SSD-Mobilenet, хотя вы можете экспериментировать и с другими сетями.

Хотя обучение обычно выполняется на ПК, сервере или облачном экземпляре с дискретными GPU из-за часто больших наборов данных и связанных вычислительных требований, с помощью переносного обучения мы можем перетренировать различные сети на борту Jetson для начала обучения и развертывания собственных моделей глубокой нейронной сети. PyTorch — это машинное обучение, которое мы будем использовать, и примеры наборов данных, а также скрипты обучения, предоставлены ниже, включая инструмент на основе камеры для сбора и маркировки собственных наборов данных обучения.## Установка PyTorch Если вы [запускаете контейнер Docker](aux-docker.md) или по желанию установили PyTorch, когда [строили проект](building-repo-2.md#установка-pytorch), он уже должен быть установлен на вашем Jetson для использования. В противном случае, если вы не используете контейнер и хотите приступить к переносному обучению, вы можете установить его сейчас: ```bash $ cd jetson-inference/build $ ./install-pytorch.sh ``` > **Примечание**: автоматический инструмент установки PyTorch требует JetPack 4.2 или более новой версии. Если вы хотите выполнить [обучение модели детекции объектов](pytorch-ssd.md), вам следует использовать JetPack 4.4 или более новую версию и установить PyTorch для **Python 3.6**.

Проверка PyTorch

Для проверки правильности установки PyTorch и обнаружения вашей GPU выполните следующие команды из интерактивной оболочки Python - запустите python или python3 из терминала:

>>> import torch
>>> print(torch.__version__)
>>> print('CUDA доступен: ' + str(torch.cuda.is_available()))
>>> a = torch.cuda.FloatTensor(2).zero_()
>>> print('Тензор a = ' + str(a))
>>> b = torch.randn(2).cuda()
>>> print('Тензор b = ' + str(b))
>>> c = a + b
>>> print('Тензор c = ' + str(c))
>>> import torchvision
>>> print(torchvision.__version__)

Обратите внимание, что версия torch должна быть отображена как 1.6.0, а версия torchvision должна быть 0.7.0.

Монтирование Swap Если вы не используете Jetson AGX Xavier, вам следует смонтировать 4 ГБ пространства swap, так как обучение требует большое количество дополнительной памяти.

Выполните следующие команды на вашем Jetson (за пределами контейнера) для отключения ZRAM и создания файла swap:

sudo systemctl disable nvzramconfig
sudo fallocate -l bk 4G /mnt/4GB.swap
sudo mkswap /mnt/4GB.swap
sudo swapon /mnt/4GB.swap

Затем добавьте следующую строку в конец файла /etc/fstab, чтобы сделать изменения постоянными:

/mnt/4GB.swap  none  swap  sw 0  0

Теперь ваш файл swap будет автоматически смонтирован после перезагрузки. Для проверки использования выполните команды swapon -s или tegrastats. Отключение ZRAM (внутреннего сжатого пространства swap) также освобождает физическую память и требует перезагрузки для вступления в силу.

Отключение графического интерфейса пользователя

Если вы испытываете нехватку памяти во время обучения, вы можете попробовать временно отключить графический интерфейс пользователя Ubuntu во время обучения. Это освободит дополнительную память, используемую менеджером окон и рабочим столом (около ~800 МБ для Unity/GNOME или ~250 МБ для LXDE). Вы можете временно отключить рабочий стол, выполнить команды в консоли, а затем перезапустить рабочий стол после завершения обучения:

$ sudo init 3     # остановить рабочий стол
# войти в консоль от имени пользователя
# выполнить скрипты обучения PyTorch

Исправления:

  1. "bk 4G" заменено на "4G".
  2. "4GB. swap" заменено на "4GB.swap". $ sudo init 5 # перезапустить рабочий стол
 Если вы хотите сделать это постоянным при перезагрузке, вы можете использовать следующие команды для изменения поведения при запуске:
 ``` bash
$ sudo systemctl set-default multi-user.target     # отключить рабочий стол при запуске
$ sudo systemctl set-default graphical.target      # включить рабочий стол при запуске

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

Далее | Повторная настройка на наборе данных кошек/собак
Назад | Монокулярная глубина с использованием DepthNet

© OnClickListener 2016-2019 NVIDIA | Содержание

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/duping812-jetson-inference.git
git@api.gitlife.ru:oschina-mirror/duping812-jetson-inference.git
oschina-mirror
duping812-jetson-inference
duping812-jetson-inference
master