运行以下终端命令来安装依赖项

运行以下终端命令来安装依赖项

我在 Debian 9 Stretch 上从源代码安装 Caffe(CPU 版本)时遇到了困难。(运行时make all遇到与 blas/liblapack 相关的链接错误)

在下面的答案中,我列出了我为了安装 Caffe 而运行的终端命令。我在新的 Virtualbox 安装的 Debian 9 中从 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 的确切版本(可能?)很重要。其他版本的安装(例如,从 CD)应该可以工作,但你可能需要安装其他我不需要安装的软件包。日期是 2017-12-13。

答案1

终端命令:请注意,这些命令在虚拟机中的全新安装中有效。它们不适用于同一操作系统的现有安装,这意味着

  • 我忘记了在我的机器上安装了哪个版本的 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

这是我针对仅 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 库创建符号链接

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

我不知道如何处理protopython目录。

相关内容