序文
最近は自分でカフェのアーキテクチャを学びたいと思っていますが、結局このアーキテクチャは広く使われているので、仮想マシンにカフェをインストールしていきます。インターネット上にはすでにたくさんのチュートリアルがありますが、インストールエラーは常にさまざまなので、この記事を書きたいと思います。インストールプロセス中に発生した問題が参考になることを願っています。また、問題を要約するのにも便利です。
ヒント:caffeのgpuバージョンは仮想マシンにインストールできません(自分でインストールしました。GPUドライバーをインストールすると、GPUが見つからないというエラーが報告されます)。そのため、cpheのcpuバージョンのみをインストールできます。
依存ライブラリのインストール
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
依存ライブラリは基本的に同じであり、通常、段階的なインストールで問題はありません。1つをお見逃しなく。
カフェをダウンロード
ubuntuにgitツールがない場合は、最初にgitをインストールします。
sudo apt-get install git
次に、カフェのソースコードをダウンロードします
git clone git://github.com/BVLC/caffe.git
しかし、私はこのステップでミスを犯し、エラーを報告しました:エラー:RPCが失敗しました; curl 18転送が閉じられ、未処理の読み取りデータが残っています。
インターネット上では、次のコマンドを実行してキャッシュを500Mの大きな値に設定すると言われています(コマンドは次のとおりです)。設定しましたが、ダウンロードが間違っているため、鳥が使用するものはありません。
git config --global http.postBuffer 524288000
次に、クローンを減らして–depth1を追加します。今回はダウンロードに成功しました。
–深さ1は、コピーの深さが1であることを意味します。つまり、各ファイルは、履歴バージョン全体ではなく、最新の送信のみを受け取ります。
git clone https://github.com/flutter/flutter.git --depth 1
カフェをコンパイルする
caffeディレクトリとcdcaffe /ディレクトリを入力します。
次に、caffeディレクトリに付属しているMakefile.config.exampleファイルをコピーし、次のように名前をMakefile.configに変更します。
cp Makefile.config.example Makefile.config
次に、Makefile.configファイルを変更します
vim Makefile.config
次の図に示すように、CPU_ONLYの前にある#記号を削除します。これは、CPUのみが使用されることを意味します。
次に、構成オプションでincludeとlibのパスを変更し、HDF5のパスを追加します。
元の構成オプションは次のとおりです。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
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/
構成ファイルのpython設定は変更されていません。デフォルトのpython2.7が使用されています。一部のオンラインではpython3.5を使用すると言われています。このバージョンはまだ試していません。
次に、コンパイルを開始します
sudo make all -j2
sudo make test -j2
sudo make runtest
下の図に示すように、カフェがコンパイルされたことを証明します。
注:実行結果が失敗した場合は、ステートメントsudo make cleanを実行してから、問題を解決して再コンパイルする必要があります。
通常、このステップでは問題はありません。次のpythonインターフェイスをコンパイルするときに多くの問題があります。
Pythonインターフェースのコンパイル
CaffeにはPythonおよびC ++インターフェイスがあります。Pythonインターフェイスをより頻繁に使用します。ここで、pythonインターフェイスのコンパイルを開始します。
(1)ピップをインストールする
sudo apt-get install python-pip
(2)caffeルートディレクトリにはpythonフォルダがあり、フォルダには必要な依存ライブラリとバージョン情報を含むrequirements.txtがあります。それに応じてインストールするだけです。インストールする前に、fortranエディタをインストールする必要があります。 (gfrotran)、scipyライブラリをインストールするときに必要になるため、コマンドは次のようになります。
sudo apt-get install gfortran
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done
$(cat Requirements.txt); do pip install $ req; doneコマンドでのreqの実装に注意してください。インストールするときは、ネットワーク速度が向上していることを確認する必要があります。インストールプロセス中にネットワークを変更し、携帯電話でホットスポットを構築しました。インストール、以前のネットワークはあまり良くありません。
$(cat required.txt); do pip install $ req;のforreqの実装中に、問題が発生しました。
pipのバージョンが8.1.1であることを示すプロンプトが表示され、アップグレードすることをお勧めします。そのため、次のコマンドを使用してpipをアップグレードします。
pip install --upgrade pip
アップグレード後、pip -Vを使用してバージョンを確認すると、別のエラーが発生しました:ImportError:名前mainをインポートできません。
オンライン情報を確認してください。解決策は次のとおりです
。pipファイルはusr / binディレクトリにあり、それにcdして、pipファイルを変更します。
cd /usr/bin
vim pip
次の変更を加え、次の3行を入力します
from pip import main
if __name__ == '__main__':
sys.exit(main())
次の3行に置き換えます
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
次に、次のコマンドを再度実行します。
for req in $(cat requirements.txt); do sudo pip install $req; done
ただし、別のエラーが報告されました。エラーは次のとおりです。これは、python-dateutilのバージョンが正しくないことを示しています。
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.
インストールされているpython-dateutilを表示する
root@ubuntu:~/caffe# apt list python-dateutil
Listing... Done
python-dateutil/xenial,xenial,now 2.4.2-1 all [installed,automatic]
元のファイルのバージョン制限を直接削除します
vim requirements.txt
python-dateutil> = 1.4、<2をpython-dateutilに変更
し、$(cat required.txt ); do sudo pip install $ req; doneのreqに対して再度実行します。今回は、最終的にインストールされます。
(3)次に、pythonの環境変数を変更します
vim ~/.bashrc
ファイルの最後に追加
export PYTHONPATH=/home/moqi/caffe/python:$PYTHONPATH
環境変数を有効にする:
source ~/.bashrc
pythonインターフェースをコンパイルする
cd ~/caffe/
make pycaffe
エラー:python / caffe / _caffe.cpp:10:31:致命的なエラー:numpy / arrayobject.h:そのようなファイルまたはディレクトリはありません。ファイルnumpy /arrayobject.hが見つかりませんでした。
Makefile.configでPYTHON_INCLUDEを見つけます。
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
ローカルを追加すると、次のようになります。
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include
その後、pycaffeを作るのは大丈夫です
やっと
以下に示すように、pythonインターフェイスが正常にインストールされていることを確認し、インストールが成功したことを示します。
この時点で、仮想マシンubuntu16.04へのcaffe(cpuバージョン)のインストールは完了です。次の記事では、カフェの特定のルーチンの研究を開始します。
参照:
https ://blog.csdn.net/qq_38784979/article/details/82811907