У меня были трудности с установкой Caffe (CPU Version) из исходного кода на Debian 9 Stretch. (Обнаружены ошибки ссылок при запуске make all , связанные с blas/liblapack)

В ответе ниже я перечислил команды терминала, которые я выполнил для установки Caffe. Я проверил это в новой версии Debian 9 для Virtualbox с образа DVD (DVD1.iso).

Адрес: https://saimei.ftp.acc.umu.se/debian-cd/current/amd64/iso-dvd/debian-9.3.0-amd64-DVD-1.iso

Также доступно по адресу: https://www.debian.org/CD/http-ftp/#stable, щелкните ссылку "DVD"/amd64.

Это (наверное?) важно указать точную версию Debian, которую я использовал во время процесса установки. Другие версии установки (например, с компакт-диска) должны работать, но вам может потребоваться установить другие пакеты, которые мне не нужно было устанавливать. Дата 2017-12-13.

1 ответ1

0

Команды терминала: обратите внимание, что они работали внутри новой установки на виртуальной машине. Они НЕ работали на существующей установке той же операционной системы, что означает, что либо

  • Я забыл, какую версию дистрибутива Debian я установил на мою машину. (Это Stretch, но, возможно, установил CD, а не DVD).

  • Или я тем временем установил некоторые другие вещи, которые изменили мою ОС таким образом, что установка Caffe не удалась. Я понятия не имею, почему это происходит.

Выполните следующие команды терминала для установки зависимостей

# Update system
sudo apt update && sudo apt upgrade -y
# Install general development tools
sudo apt install -y build-essential cmake pkg-config git
# Install blas
sudo apt install -y libopenblas-*
# Install boost
sudo apt install -y libboost-all-dev
# Install open CV
sudo apt install -y libopencv-dev
# Install protobuf
sudo apt install -y protobuf-compiler libprotobuf-dev
# Install other dependencies
sudo apt install -y libgflags-dev libhdf5-dev libhdf5-serial-dev liblmdb-dev libleveldb-dev libsnappy-dev libgoogle-glog-dev
# Install python dependencies
python python-pip python-numpy python-scipy python-dev python3 python3-pip python3-numpy python3-scipy python3-dev

Клон Кафе

cd ~
git clone https://github.com/BVLC/caffe.git
cd caffe

Скопируйте Makefile.config.example и измените настройки перед сборкой

cp Makefile.config.example Makefile.config
vim Makefile.config

Вот вывод diff после того, как я отредактировал его для сборки только CPU

8c8
< # CPU_ONLY := 1
---
> CPU_ONLY := 1
51c51
< BLAS := atlas
---
> BLAS := open
95c95
< INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
---
> INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

Таким образом, я включил режим сборки CPU_ONLY, изменил BLAS на OpenBLAS и добавил каталог включения; /usr/include/hdf5/serial . Без этого дополнительного каталога сборка завершается с ошибкой «не удалось найти hdf5.h».

Примечание: вам также может понадобиться раскомментировать строку OPENCV_VERSION := 3 если вы используете OpenCV версии 3.

Установите дополнительные пакеты Python

cd python
for req in $(cat requirements.txt); do pip install $req; done
for req in $(cat requirements.txt); do pip3 install $req; done

Обратите внимание, что я делаю все для Python и Python3. Существует метод для переключения между тем, какая версия python caffe используется при сборке пакетов python, но я пока не знаю, как это сделать, поэтому я просто устанавливаю обе версии и надеюсь на лучшее.

Сделать символические ссылки для hdf5 libs

cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libhdf5_serial.so.100.0.1 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.100.0.0 libhdf5_hl.so

строить

cd ~/caffe
make all
make test
make runtest
make pycaffe
make distribute
// TODO: move make distribute output to correct place
// figure out what to do with other files in distribute directory

Переместить распространяемые файлы в правильное местоположение

cd distribute
sudo cp -r ./bin/* /bin/
sudo cp -r ./include/* /usr/include/
sudo cp -r ./lib/* /usr/lib

Я понятия не имею, что делать с каталогами proto и python .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .