Artigo Diretório
Prefácio
Recentemente, quero aprender sozinho a arquitetura caffe.Afinal, essa arquitetura é amplamente utilizada, então vou instalar o caffe na minha máquina virtual. Já existem muitos tutoriais na Internet, e ainda quero escrever este artigo porque os erros de instalação de todos são sempre vários. Espero que os problemas que encontrei durante o processo de instalação possam fornecer alguma referência, e também seja conveniente para mim resumir os problemas.
Dica : A versão gpu do caffe não pode ser instalada na máquina virtual (eu mesmo instalei e um erro será relatado ao instalar o driver da GPU, dizendo que a GPU não pode ser encontrada), portanto, apenas a versão cpu do caffe pode ser instalada.
Instalação de biblioteca dependente
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
Bibliotecas dependentes são basicamente as mesmas e geralmente não haverá problemas com a instalação passo a passo. Apenas não perca nenhuma.
Baixe caffe
Se não houver ferramenta git em seu ubuntu, instale primeiro um git.
sudo apt-get install git
Em seguida, baixe o código-fonte caffe
git clone git://github.com/BVLC/caffe.git
Mas cometi um erro nesta etapa e relatei um erro: erro: RPC falhou; transferência curl 18 fechada com dados de leitura pendentes restantes.
Diz-se na Internet para executar o seguinte comando para definir o cache para um valor maior de 500M (o comando é o seguinte :), eu configurei, mas o download ainda está errado, não há nada para pássaros.
git config --global http.postBuffer 524288000
Em seguida, tente clonar menos e adicionar –depth 1. O download foi bem sucedido desta vez.
–A profundidade 1 significa que a profundidade da cópia é 1, ou seja, cada arquivo leva apenas o envio mais recente, não a versão histórica inteira.
git clone https://github.com/flutter/flutter.git --depth 1
Compilar café
Digite o diretório caffe e o diretório cd caffe /.
Em seguida, copie o arquivo Makefile.config.example que vem com o diretório caffe e renomeie-o para Makefile.config, da seguinte maneira:
cp Makefile.config.example Makefile.config
Em seguida, modifique o arquivo Makefile.config
vim Makefile.config
Exclua o sinal # na frente de CPU_ONLY, o que significa que apenas CPU é usada, conforme mostrado na figura a seguir:
Em seguida, modifique o caminho de include e lib nas opções de configuração e adicione o caminho de HDF5.
As opções de configuração originais são:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
Depois de adicionar o caminho HDF5:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/
As configurações do python no arquivo de configuração não foram alteradas. O padrão python2.7 é usado. Alguns online dizem para usar o python3.5. Eu não tentei esta versão ainda.
Então comece a compilar
sudo make all -j2
sudo make test -j2
sudo make runtest
Conforme mostrado na figura abaixo, isso prova que o caffe foi compilado.
Nota: Se o resultado da execução falhar, você precisa executar a instrução sudo make clean e, em seguida, resolver o problema e recompilar
Geralmente, não haverá problemas nesta etapa. Existem muitos problemas ao compilar a seguinte interface Python.
Compilação da interface Python
Caffe tem interfaces Python e C ++. Usamos interfaces Python com mais frequência. Aqui começamos a compilar interfaces Python.
(1) Instale o pip
sudo apt-get install python-pip
(2) No diretório raiz do caffe, há uma pasta python, e há um requirements.txt na pasta, que contém as bibliotecas dependentes necessárias e informações de versão. Basta instalá-lo de acordo com ele. Antes de instalar, você precisa instalar o editor fortran. (gfrotran), porque é necessário ao instalar a biblioteca scipy, o comando é o seguinte
sudo apt-get install gfortran
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done
Preste atenção à implementação disso para req em $ (cat requirements.txt); faça pip install $ req; comando done. Ao instalar, você deve garantir que a velocidade da rede é melhor. Mudei a rede durante o processo de instalação e construí um ponto de acesso com meu telefone celular Instalação, a rede anterior não é muito boa.
Durante a implementação de for req em $ (cat requirements.txt); do pip install $ req; concluído, ocorreu um problema.
Ele informa que a versão do pip é 8.1.1 e é recomendável fazer upgrade, portanto, use o seguinte comando para fazer upgrade do pip:
pip install --upgrade pip
Após a atualização, use pip -V para verificar a versão, e o resultado foi outro erro: ImportError: não é possível importar o nome principal.
Verifique as informações online, a solução é: o
arquivo pip está no diretório usr / bin, faça cd nele e modifique o arquivo pip.
cd /usr/bin
vim pip
Faça as seguintes alterações e coloque as seguintes três linhas
from pip import main
if __name__ == '__main__':
sys.exit(main())
Substitua pelas seguintes três linhas
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
Em seguida, execute o seguinte comando novamente:
for req in $(cat requirements.txt); do sudo pip install $req; done
No entanto, outro erro foi relatado. O erro é o seguinte, indicando que a versão de python-dateutil está incorreta
pandas 0.24.4 has requirement python-dateutil>=2.5.0, but you'll have
python-dateutil 1.5 which is incompatible.
matplotlib 2.2.3 has requirement python-dateutil>=2.1, but you'll have
python-dateutil 1.5 which is incompatible.
Veja o python-dateutil instalado
root@ubuntu:~/caffe# apt list python-dateutil
Listing... Done
python-dateutil/xenial,xenial,now 2.4.2-1 all [installed,automatic]
Exclua diretamente a restrição de versão no arquivo original
vim requirements.txt
Altere python-dateutil> = 1.4, <2 para python-dateutil
e execute novamente para req em $ (cat requisitos.txt); do sudo pip install $ req; feito, desta vez ele está finalmente instalado.
(3) Em seguida, modifique as variáveis de ambiente de python
vim ~/.bashrc
Adicione no final do arquivo
export PYTHONPATH=/home/moqi/caffe/python:$PYTHONPATH
Habilite variáveis de ambiente:
source ~/.bashrc
Compilar interface python
cd ~/caffe/
make pycaffe
Erro: python / caffe / _caffe.cpp: 10: 31: erro fatal: numpy / arrayobject.h: Nenhum arquivo ou diretório, o arquivo numpy / arrayobject.h não foi encontrado.
Encontre PYTHON_INCLUDE em Makefile.config,
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
Para adicionar um local, ele se torna:
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
Então faça pycaffe está bem
Finalmente
Verifique se a interface python foi instalada com sucesso, conforme mostrado abaixo, indicando que a instalação foi bem-sucedida.
Neste ponto, a instalação do caffe (versão cpu) na máquina virtual ubuntu16.04 está concluída. O próximo artigo começará a estudar as rotinas específicas do café.
Referência:
https://blog.csdn.net/qq_38784979/article/details/82811907