Comandos de terminal: Observe que isso funcionou dentro de uma nova instalação dentro de uma máquina virtual. Eles NÃO funcionaram em uma instalação existente do mesmo sistema operacional, o que significa que
-
Esqueci qual versão da distribuição debian que instalei na minha máquina. (É Stretch, mas pode ter sido a instalação do CD, não a do DVD).
-
Ou instalei algumas outras coisas nesse meio tempo que alteraram meu sistema operacional de tal forma que a instalação do Caffe falhou. Eu não tenho ideia de por que isso acontece.
Execute os seguintes comandos do terminal para instalar dependências
# 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
Clone caffe
cd ~
git clone https://github.com/BVLC/caffe.git
cd caffe
Copie Makefile.config.example e altere as configurações antes de criar
cp Makefile.config.example Makefile.config
vim Makefile.config
Aqui está a saída do diff depois que eu editei para a compilação da 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
Em resumo, habilitei o modo de construção CPU_ONLY, alterei o BLAS para o OpenBLAS e adicionei um diretório include; %código%. Sem este diretório extra, a compilação falha com o erro "não foi possível encontrar hdf5.h".
Observação: Você também pode precisar remover o comentário da linha /usr/include/hdf5/serial
se você estiver usando o OpenCV versão 3.
Instalar pacotes extras de 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
Observe que faço tudo para python e python3. Existe um método para alternar entre a versão do python caffe usada na construção dos pacotes python, mas eu ainda não sei como fazer isso, então apenas instalei os dois e esperei pelo melhor.
Crie links simbólicos para 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
Construir
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
Mover os arquivos de distribuição para o local correto
cd distribute
sudo cp -r ./bin/* /bin/
sudo cp -r ./include/* /usr/include/
sudo cp -r ./lib/* /usr/lib
Não tenho ideia do que fazer com os diretórios OPENCV_VERSION := 3
e proto
.