Команды терминала: обратите внимание, что они работали внутри новой установки на виртуальной машине. Они НЕ работали на существующей установке той же операционной системы, что означает, что либо
Я забыл, какую версию дистрибутива 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
.