Сегодня я нашел свой временно забытый 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.