Сегодня я нашел свой временно забытый Rpi3 (названный Wombat, как австралийское сумчатое животное), и я подумал о том, как давно хотел попробовать запустить на нем какой-нибудь Caffe2. На самом деле я купил Rpi3 почти год назад для тех идей, которые мог придумать, в основном, в отношении глубокого обучения (я уже давно не работал с оборудованием, поэтому на данный момент я не подключаю к нему никаких проводов). Меня особенно интересует глубокое обучение встроенной системы, такой как Rpi.
Перво-наперво, мы должны настроить Rpi3 с правильным образом ОС. Я использовал стандартный дистрибутив Raspbian (https://www.raspbian.org/), чтобы он работал из коробки, установив его с помощью типичной команды dd
из командной строки OSX. Следуйте инструкциям в этой ссылке для получения информации об этом, если вам все еще нужно настроить SD-карту, я не буду работать с ней здесь = D.
Итак, у меня есть мой супер-вомбат, готовый загрузить исходный код Caffe2 в репозитории PyTorch, как указано в инструкциях на веб-сайте Caffe2.
Очень краткое введение в Caffe2 и PyTorch
Но подождите ... что такое Caffe2?
Caffe2 - это платформа глубокого обучения, которая предоставляет вам простой и понятный способ экспериментировать с глубоким обучением и использовать вклад сообщества в новые модели и алгоритмы.
Что такое PyTorch?
PyTorch - это пакет Python, который предоставляет две высокоуровневые функции:
* Тензорные вычисления (например, numpy) с сильным ускорением графического процессора
* Глубокие нейронные сети, построенные на ленточной системе автоматического определения различий.
Чтобы внести ясность… с PyTorch мы можем разрабатывать нейронные сети (и я люблю PyTorch за свои исследования), однако он не так готов, как Caffe2, для производственных целей. Вот почему разработчики PyTorch (ориентированные на исследования) сделали его конвергентным с Caffe2 (ориентированным на производство), включая Caffe2 внутри проекта PyTorch. На самом деле летом планируется выпустить версию 1.0 PyTorch, где PyTorch и Caffe2 будут полностью объединены для экспорта моделей из PyTorch в Caffe2 одним щелчком пальца. УРА!!
На данный момент, как я уже сказал, я просто хочу поиграться с возможностями Caffe2 из любопытства, особенно на Rpi.
Требования к программному обеспечению
Мне нужно git
продолжить управление репозиторием Pytorch, gcc-4.9.2
и g++-4.9.2
для компиляции фреймворка и python 2.7.9
.
Установка Caffe2
поэтому сначала мы приступаем к клонированию репозитория PyTorch со всеми его подмодулями:
git clone --recursive https://github.com/pytorch/pytorch.git cd pytorch git submodule update --init
Я никогда не использовал параметр подмодуля в git, поэтому я изучил, что это означает в git man:
Подмодули позволяют встраивать внешние репозитории в выделенный подкаталог дерева исходных текстов, всегда указывающий на конкретную фиксацию. […] Подмодули предназначены для различных проектов, которые вы хотели бы сделать частью своего дерева исходных текстов […]
Таким образом, подмодули похожи на блоки лего с частями, собранными кем-то другим, но вы используете их, чтобы составить часть своего замка, смешанную с вашими собственными частями / блоками.
Если подмодуль еще не инициализирован, и вы просто хотите использовать настройку, хранящуюся в .gitmodules, вы можете автоматически инициализировать подмодуль с параметром - init.
Это будет в основном заботиться о настройке материала этих блоков после клонирования репо. Эти подмодули находятся в папкеthird_party
. Теперь давайте выполним сценарий сборки Raspbian в Caffe2. В корневом каталоге pytorch
выполните:
./scripts/build_raspbian.sh
Я мог бы запустить эту инструкцию сразу, но всегда проверяйте, имеет ли ваш файл надлежащие разрешения на выполнение, или дайте ему эти разрешения, если вы не можете выполнить указанную выше команду, а затем снова выполните сценарий сборки:
chmod +x ./scripts/build_raspbian.sh
Теперь нам придется немного подождать, пока Rpi чертовски потеет, собирая все это. Серьезно ... это займет много времени. Как только это будет сделано, мы переходим в каталог build
и выполняем:
sudo make install
Теперь выйдите из папки pytorch
, чтобы не пытаться импортировать каталог caffe2
как модуль (например, выполнить cd
), и просто перейдите к интерпретаторуpython
и введите:
import caffe2
И это работает ... однако, когда я попытался загрузить модуль python
внутри Caffe2 (который мы будем использовать на следующих этапах при игре с фреймворком в Python API), он вылетел из-за установленной мной версии protobuf. На всякий случай, если это произойдет с вами, вы можете обновить protobuf, по крайней мере, у меня это сработало:
sudo pip install protobuf -U
И… работает!
Выводы
В этом посте я немного рассказал, что такое Caffe2 и PyTorch, очень кратко о том, как они соотносятся друг с другом, и, наконец, как установить Caffe2 на Rpi3. Процесс был довольно простым, и мы готовы отправиться в новые глубокие приключения на этом крошечном устройстве. Итак, теперь мы сможем по-настоящему поиграться с Caffe2.