предисловие
В последний раз, когда мы устанавливали OpenCV 4.4, я считаю, что у нас есть определенное понимание файлов библиотеки компиляции исходного кода.В этой статье мы дополнительно скомпилировали и установили последнюю версию Pytorch на Raspberry Pi.
Новое в PyTorch 1.6
В PyTorch версии 1.6 добавлено множество новых API, инструментов для повышения производительности и анализа производительности, а также распределенное обучение на основе основных обновлений распределенных параллельных данных (DDP) и удаленного вызова процедур (RPC). Некоторые из основных моментов обновления включают в себя:
- Встроенная поддержка автоматического обучения смешанной точности (AMP, автоматическое обучение смешанной точности) может увеличить скорость обучения больших моделей на 50–60 % всего за несколько новых строк кода.
- Добавить встроенную поддержку TensorPipe для поддержки тензора.
- Добавлена поддержка сложного тензора в интерфейсном API.
- Новый инструмент профилирования предоставляет информацию о потреблении памяти на тензорном уровне.
- Многочисленные улучшения и новые функции для параллельного обучения с распределенными данными и удаленного вызова процедур.
Увеличение памяти подкачки (необязательно)
Для компиляции torch требуется много памяти. На Raspberry Pi с объемом памяти менее 2 г вы можете предотвратить OOM, увеличив виртуальную память. Вы можете пропустить этот шаг на версиях Raspberry Pi 4 г или 8 г.
1. Измените файл конфигурации
sudo nano /etc/dphys-swapfil
Ставим подкачку памяти 4g, содержимое файла такое:
# /etc/dphys-swapfile - user settings for dphys-swapfile package
# author Neil Franklin, last modification 2010.05.05
# copyright ETH Zuerich Physics Departement
# use under either modified/non-advertising BSD or GPL license
# this file is sourced with . so full normal sh syntax applies
# the default settings are added as commented out CONF_*=* lines
# where we want the swapfile to be, this is the default
#CONF_SWAPFILE=/var/swap
# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
CONF_SWAPSIZE=4096
Сохраните и выйдите, перезапустите службу, чтобы изменения вступили в силу.
sudo service dphys-swapfile restart
Проверьте, был ли скорректирован своп.
swapon -s
Зависимости среды установки PyTorch
1. Установите зависимости
Сначала установите некоторые зависимые библиотеки, необходимые для компиляции:
sudo apt-get install libopenblas-dev cython3 libatlas-base-dev m4 libblas-dev cmake
sudo apt-get install python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy
2. Переключите виртуальную среду
deactivate # 退出之前 OpenCV 的虚拟环境
# 创建新的虚拟环境
virtualenv -p python3 ~/my_envs/pytorch
source ~/my_envs/pytorch/bin/activate
Скомпилируйте и установите PyTorch
1. Установите элементы конфигурации
export NO_CUDA=1
export NO_DISTRIBUTED=1
export NO_MKLDNN=1
export NO_NNPACK=1
export NO_QNNPACK=1
2. Установите файлы библиотеки
pip3 install numpy pyyaml
Tip:
Обязательно подтвердите, что numpy был установлен в виртуальной среде. Его можно успешно скомпилировать без numpy, но скомпилированный PyTorch не поддерживает numpy. PyTorch был скомпилирован без поддержки NumPy.
3. Загрузите исходный код и библиотеку поддержки
git clone https://github.com/pytorch/pytorch.git
cd pytorch
# 查询所要编译的版本
git branch -a
git tag
git checkout v1.6.0
git submodule update --init --recursive
git submodule update --remote third_party/protobuf
4. Создайте установочный пакет whl
python3 setup.py bdist_wheel
Следующим шагом является долгий процесс компиляции, который длился более 5 часов.Если вы скомпилировали OpenCV до этого и просто пошли выпить чашечку кофе и можете вернуться и продолжить, то времени на компиляцию PyTorch вполне достаточно, чтобы вдоволь напиться. спать.
Кстати, установите инструмент s-tui для измерения температуры и загрузки процессора, чтобы следить за состоянием системы.
sudo pip install s-tui --ignore-installed
sudo s-tui
Стабильное состояние полной нагрузки:
5. Установите ПиТорч
cd dist
pip3 install ./torch-1.6.0a0+b31f58d-cp37-cp37m-linux_armv7l.whl
Если вы видите следующую информацию, это означает, что установка прошла успешно.
Скомпилируйте и установите Torchvision
1. Загрузите исходный код
git clone https://github.com/pytorch/vision.git
2. Выберите соответствующую версию
Torchvision, соответствующий pytorch 1.6, имеет версию 0.7, проверьте ее и установите поддержку PIL.
pip3 install pillow
cd vision
git checkout v0.7.0-rc4
git submodule update --init --recursive
python3 setup.py bdist_wheel
Tip:
Если вы столкнулись с приведенным выше сообщением об ошибке при компиляции, это связано с тем, что в исходном коде есть два типа переменных, и вам нужно использовать size_t для принудительного преобразования типа. Просто измените соответствующие файлы seekable_buffer.cpp и util.cpp.
3. Установите TorchVision
cd dist
pip3 install ./torchvision-0.7.0a0+78ed10c-cp37-cp37m-linux_armv7l.whl
Возьми!
запустить йоло v5
1. Клонировать исходный код yolov5
git clone https://github.com/ultralytics/yolov5
2. Мягкая ссылка на OpenCV
cd ~/my_envs/pytorch/lib/python3.7/site-packages
ln -s /usr/local/lib/python3.7/site-packages/cv2 cv2
Tip:
Чтобы удалить программную ссылку, просто используйте rm -rf ./cv2 , будьте осторожны, чтобы не добавить / в конце.
3. Установите зависимости
pip install tqdm
pip install matplotlib
pip install scipy
4. Аргументация изображения
В тесте используется самая маленькая модель yolov5s для обнаружения цели на двух изображениях.Скорость распознавания неплохая, но скорость средняя, одна 3,8 секунды, одна 2,8 секунды, около 0,3 кадра в секунду, мы можем сравнить эффект ускорения openvino позже.
cd yolov5
python3 detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.5
На данный момент pytorch1.6 в Raspberry Pi может нормально работать.
Скачать
Если вы хотите пропустить длительный процесс компиляции, вы можете напрямую загрузить whl и установить его с помощью pip install. На основе версии python 3.7, в дополнение к pytorch 1.6 + torchvision 0.7, я также скомпилировал последнюю версию pytorch 1.7 + torchvision 0.8 (обратите внимание на соответствие версий при установке).
Официальный аккаунт «Глубокое пробуждение», фоновый ответ: «rpi04», вы можете получить ссылку для скачивания.
Следующее уведомление
Мы приступим к установке среды разработки Tensorflow, и запустите tensorflow lite, Взгляните на предельную скорость голой платы Raspberry Pi, Быть в курсе...