一、cpu上的操作:
sudo apt-get update #更新軟件列表
安裝後續步驟或環境必需的依賴包,依次輸入以下命令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
有一定機率安裝失敗而導致後續步驟出現問題,所以要確保以上依賴包都已安裝成功,驗證方法就是重新運行安裝命令,如驗證 git cmake build-essential是否安裝成功共則再次運行以下命令:
sudo apt-get install git cmake build-essential
1
界面提示如下則說明已成功安裝依賴包,否則繼續安裝直到安裝成功。
yhao@yhao-X550VB:~$ sudo apt-get install git cmake build-essential
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關係樹
正在讀取狀態信息... 完成
build-essential 已經是最新版 (12.1ubuntu2)。
cmake 已經是最新版 (3.5.1-1ubuntu3)。
git 已經是最新版 (1:2.7.4-0ubuntu1.1)。
下列軟件包是自動安裝的並且現在不需要了:
lib32gcc1 libc6-i386
使用'sudo apt autoremove'來卸載它(它們)。
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 94 個軟件包未被升級。
3.安裝必要的庫
A:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml
B:
sudo easy_install pillow
4.下載caffe
cd ~
git clone https://github.com/BVLC/caffe.git
5.安裝python相關的依賴庫
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
6.增加符號鏈接:
sudo ln -s /usr/include/python2.7/ /usr/local/include/python2.7
sudo ln -s /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/ /usr/local/include/python2.7/numpy
7.修改Makefile.config配置文件
在~/caffe目錄下:
A
先將Makefile.config.example複製爲Makefile.config
cp Makefile.config.example Makefile.config
B
去掉 # CPU_ONLY: = 1 的註釋
用gedit打開Makefile.config(或者直接用vim在終端中打開修改也可以)
gedit Makefile.config
結果如下圖:
C
修改PYTHON_INCLUDE路徑
把
/usr/lib/python2.7/dist-packages/numpy/core/include
改爲:
/usr/local/lib/python2.7/dist-packages/numpy/core/include
如圖:
D
如果沒有 hdf5,安裝一下,如果有了,就跳過安裝
安裝hdf5
sudo apt-get install libhdf5-dev
添加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/
如圖:
8.編譯caffe
在caffe目錄下面:
make pycaffe
make all
make test
可以編譯成功,caffe基本上就已經安裝成功了。
9.使用MNIST手寫數據集測試,訓練數據模型
A
cd ~/caffe (or whatever you called your Caffe directory)
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
B
編輯examples/mnist文件夾下的lenet_solver.prototxt文件,將solver_mode模式從GPU改爲CPU。
C
訓練模型
./examples/mnist/train_lenet.sh
https://blog.csdn.net/liuweizj12/article/details/52138269(白話先生)
三、總結
到這一步,大功告成了!
A.下載文件太多,太大,太慢
B.步驟麻煩
C.以此文檔做爲記錄
四、參考資料
http://blog.csdn.net/hjl240/article/details/51460884
出錯參考的下面文章:
https://blog.csdn.net/forest_world/article/details/51371560
.build_release/tools/caffe: error while loading shared libraries: libopencv_core.so.3.3: cannot open
2019年01月06日 11:59:54 Hello_World_admin 閱讀數:129
ubuntu@ubuntu-ST-KN:~/caffe$ sudo make runtest -j8
CXX src/caffe/test/test_mvn_layer.cpp
CXX src/caffe/test/test_tanh_layer.cpp
NVCC src/caffe/test/test_im2col_kernel.cu
CXX src/gtest/gtest-all.cpp
CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cpp
.build_release/tools/caffe
.build_release/tools/caffe: error while loading shared libraries: libopencv_core.so.3.3: cannot open shared object file: No such file or directory
Makefile:544: recipe for target 'runtest' failed
make: *** [runtest] Error 127
https://blog.csdn.net/sahusoft/article/details/7388617
先去在/usr/local/lib目錄下查看,找到了libopencv_core.so.3.3
再接着執行:
ubuntu@ubuntu-ST-KN:~/caffe$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
ubuntu@ubuntu-ST-KN:~/caffe$ sudo echo "/usr/local/lib" >> sudo /etc/ld.so.conf
ubuntu@ubuntu-ST-KN:~/caffe$ sudo ldconfig
ubuntu@ubuntu-ST-KN:~/caffe$ sudo make runtest -j8
https://blog.csdn.net/gph2319/article/details/56497740
https://blog.csdn.net/avatar1912/article/details/52072885
error while loading shared libraries: xxx.so.x" 錯誤的原因和解決辦法
https://www.cnblogs.com/Anker/p/3209876.html
和TensorFlow對應的是Theano,Torch;
Caffe專精於圖像處理,Caffe方便,更快入門上手;
在通用的DL task上,Caffe不如Theano。
CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)
開發環境搭建:
一、沒有GPU
learning@learning-virtual-machine:~$ lspci | grep -i nvidia
learning@learning-virtual-machine:~$
二、ubuntu版本
learning@learning-virtual-machine:~$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
NAME="Ubuntu"
VERSION="15.10 (Wily Werewolf)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 15.10"
VERSION_ID="15.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
learning@learning-virtual-machine:~$
三、gcc
learning@learning-virtual-machine:~$ gcc --version
gcc.real (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
learning@learning-virtual-machine:~$
四、安裝依賴庫
learning@learning-virtual-machine:~$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
[sudo] password for learning:
Reading package lists... Done
Building dependency tree
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
五、安裝python
六、安裝Opencv
安裝Opencv
http://blog.csdn.net/forest_world/article/details/51372703Ubuntu
七、安裝依賴庫
learning@learning-virtual-machine:~$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
[sudo] password for learning:
Reading package lists… Done
八、下載Caffe
learning@learning-virtual-machine:~$ git clone git://github.com/BVLC/caffe.git
Cloning into 'caffe'...
remote: Counting objects: 34637, done.
Receiving objects: 100% (34637/34637), 47.81 MiB | 81.00 KiB/s, done.
remote: Total 34637 (delta 0), reused 0 (delta 0), pack-reused 34636
Resolving deltas: 100% (23287/23287), done.
Checking connectivity... done.
九、修改
Makefile 修改:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
這一塊代碼不需要修改
修改處:
caffe/examples/cpp_classification/classification.cpp文件
十、編譯
learning@learning-virtual-machine:~/caffe$ cp Makefile.config.example Makefile.config
learning@learning-virtual-machine:~/caffe$ ls
caffe.cloc data INSTALL.md matlab src
cmake docker LICENSE models tools
CMakeLists.txt docs Makefile python
CONTRIBUTING.md examples Makefile.config README.md
CONTRIBUTORS.md include Makefile.config.example scripts
learning@learning-virtual-machine:~/caffe$
learning@learning-virtual-machine:~/caffe$ gedit Makefile.config
learning@learning-virtual-machine:~/caffe$ make all
出現問題:
learning@learning-virtual-machine:~/caffe$ make all
PROTOC src/caffe/proto/caffe.proto
CXX .build_release/src/caffe/proto/caffe.pb.cc
CXX src/caffe/data_transformer.cpp
CXX src/caffe/common.cpp
CXX src/caffe/internal_thread.cpp
CXX src/caffe/blob.cpp
CXX src/caffe/data_reader.cpp
CXX src/caffe/parallel.cpp
CXX src/caffe/util/hdf5.cpp
In file included from src/caffe/util/hdf5.cpp:1:0:
./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory
compilation terminated.
Makefile:572: recipe for target '.build_release/src/caffe/util/hdf5.o' failed
make: *** [.build_release/src/caffe/util/hdf5.o] Error 1
learning@learning-virtual-machine:~/caffe$
解決:
Makefile.config
INCLUDE_DIRS
/usr/include/hdf5/serial/
Makefile
LIBRARIES
hdf5_hl and hdf5 改爲 hdf5_serial_hl ,hdf5_serial
出現問題:
LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
CXX tools/finetune_net.cpp
CXX/LD -o .build_release/tools/finetune_net.bin
CXX tools/net_speed_benchmark.cpp
CXX/LD -o .build_release/tools/net_speed_benchmark.bin
CXX tools/compute_image_mean.cpp
CXX/LD -o .build_release/tools/compute_image_mean.bin
.build_release/lib/libcaffe.so: undefined reference to `cv::imread(cv::String const&, int)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)'
collect2: error: ld returned 1 exit status
Makefile:616: recipe for target '.build_release/tools/compute_image_mean.bin' failed
make: *** [.build_release/tools/compute_image_mean.bin] Error 1
解決方法:
Makefile
修改:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
編譯成功:
make test
make runtest
[----------] 2 tests from BatchReindexLayerTest/0, where TypeParam = caffe::CPUDevice<float>
[ RUN ] BatchReindexLayerTest/0.TestForward
[ OK ] BatchReindexLayerTest/0.TestForward (0 ms)
[ RUN ] BatchReindexLayerTest/0.TestGradient
[ OK ] BatchReindexLayerTest/0.TestGradient (373 ms)
[----------] 2 tests from BatchReindexLayerTest/0 (374 ms total)
[----------] Global test environment tear-down
[==========] 1058 tests from 146 test cases ran. (134225 ms total)
[ PASSED ] 1058 tests.
learning@learning-virtual-machine:~/caffe$
十一、配置pycaffe
sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
sudo apt-get install protobuf-c-compiler protobuf-compiler
learning@learning-virtual-machine:~/caffe$ make pycaffe
learning@learning-virtual-machine:~/caffe$ make pycaffe
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
touch python/caffe/proto/__init__.py
PROTOC (python) src/caffe/proto/caffe.proto
learning@learning-virtual-machine:~/caffe$
sudo gedit /etc/profile
末尾添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
用完整路徑
source /etc/profile
learning@learning-virtual-machine:~/caffe$ python
Python 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
.>>>
出現問題:
.>>> import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named caffe
解決方法:
sudo gedit /etc/profile
export PYTHONPATH=$PYTHONPATH:/home/learning/caffe/python
source /etc/profile
補充:baidu解釋
Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。
Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議[1] 。
Python語法簡潔清晰,特色之一是強制用空白符(white space)作爲語句縮進。
Python具有豐富和強大的庫。它常被暱稱爲膠水語言,能夠把用其他語言製作的各種模塊(尤其是C/C++)很輕鬆地聯結在一起。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然後對其中[2] 有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而後封裝爲Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。
參考資料:Ubuntu14.04 安裝Caffe
http://blog.csdn.net/u011762313/article/details/47262549
-
二、GPU上的操作
https://blog.csdn.net/balixiaxuetian/article/details/79154013
Ubuntu 16.04+CUDA 9.1+cuDNN v7+OpenCV 3.4.0+Caffe+PyCharm 完全安裝指南,國內最全!(適用CUDA 9.0)
置頂 2018年01月28日 17:55:22 天朝小王子 閱讀數:13696
原創博客,轉載請說明出處! (本人第一篇博客,用心之作,有用求贊)
首先得感謝一篇博客的作者yhao:點擊打開鏈接 (http://blog.csdn.net/yhaolpz/article/details/71375762) 他提供了很詳細的基於CUDA 8.0 的安裝過程。由於我需要安裝的是CUDA 9.1+cuDNN v7+OpenCV 3.4.0,照搬CUDA 8.0的安裝過程會有很多錯誤出現,通過我的不斷探索也已一一解決(官方安裝文檔+stackover+Nvidia官方論壇+各種搜和問),而且給出了很多可能出現問題的解決方法。我還添加了很多配置過程的說明,讓大家知其然也知其所以然。
我的安裝硬件是兩塊 TITAN Xp 顯卡。
安裝過程分爲以下八步:
1、安裝依賴包
2、安裝顯卡驅動
3、配置環境變量
4、安裝 CUDA 9.1
5、安裝 cuDNN v7
6、安裝 OpenCV 3.4.0
7、安裝 caffe
8、用 mnist 手寫數據集驗證
9、在PyCharm上運行caffe
10、補充(持續更新)
第一步:安裝依賴包
這一步和yhao的博客基本相同,安裝後續步驟或環境必需的依賴包,按ctrl+ALT+T進入終端,依次輸入以下命令(可複製):
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install git cmake build-essential
有一定機率安裝失敗而導致後續步驟出現問題,所以要確保以上依賴包都已安裝成功,驗證方法就是重新運行安裝命令,如驗證 git cmake build-essential是否安裝成功共則再次運行以下命令:
sudo apt-get install git cmake build-essential
界面提示如下則說明已成功安裝依賴包,否則繼續安裝直到安裝成功。
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version (12.1ubuntu2).
cmake is already the newest version (3.5.1-1ubuntu3).
git is already the newest version (1:2.7.4-0ubuntu1.3).
0 upgraded, 0 newly installed, 0 to remove and 126 not upgraded.
假如有安裝包一直下載失敗,可以使用:
sudo apt-get update
更新下載源,然後重新輸入安裝命令。
第二步:安裝顯卡驅動
Ubuntu 16.04 自帶 nouveau顯卡驅動,這個自帶的驅動是不能用於CUDA的,需要卸載重裝。假如你以重裝過顯卡驅動則可跳過這一步。沒有重裝過的就跟着我的步驟往下走。
首先得禁用Ubuntu自帶的顯卡驅動nouveau,只有在禁用掉 nouveau 後才能順利安裝 NVIDIA 顯卡驅動,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一條禁用命令,首先需要打開該文件,通過以下命令打開:
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
打開後發現該文件中沒有任何內容,寫入:
blacklist nouveau
options nouveau modeset=0
保存時命令窗口可能會出現以下提示:
** (gedit:4243): WARNING **: Set document metadata failed: 不支持設置屬性 metadata::gedit-position
無視此提示~,保存後關閉文件,注意此時還需執行以下命令使禁用 nouveau 真正生效:
sudo update-initramfs -u
然後測試一下,假如輸入以下命令什麼都沒顯示那麼說明禁用nouveau生效了:
lsmod | grep nouveau
接下來就可以開始重裝顯卡驅動了。
特別注意!!!!!!!!!!!!!!
雖然CUDA 9.1 安裝包裏說需要安裝384.00版本之後的驅動,但是親測384.98和384.111都是不支持CUDA 9.1的,這也在NVIDIA官方論壇裏得到了NVIDIA工程師的肯定,巨坑!所以假如親們無法安裝CUDA 9.1安裝包裏自帶的387版本的驅動,那麼就放棄CUDA 9.1,轉而下載安裝CUDA 9.0。CUDA 9.0是支持384.xx版本的驅動的,配置方法完全相同,此博客同樣適用,只是路徑中若出現cuda-9.1的地方改成cuda-9.0即可。CUDA 9.0的下載見“10、補充”。
重裝顯卡驅動提供兩種方法:(方法二不適用於 CUDA 9.1,但是適用於CUDA 9.0)
方法一:使用 CUDA 9.1 安裝包裏自帶的驅動
CUDA 9.1安裝包裏自帶的顯卡驅動爲:linux-x86_64 387.26,可以適配新出的很多顯卡。(特別說明:我的電腦安裝完387.26版本的驅動後成功配置了caffe,但在某次異常斷電重啓後顯卡驅動失效,感覺此驅動不穩定。求穩的朋友可以安裝CUDA 9.0,配置方法此博客同樣適用。)
CUDA 9.1 和cuDNN安裝包沒下的同志可以從我自己上傳的百度雲下載:鏈接:https://pan.baidu.com/s/1c4m5aiG 密碼:ckj4
下載完成後,把解壓出來的CUDA 安裝文件(cuda_9.1.85_387.26_linux.run)移動到 HOME 路徑下,方便安裝過程的文件檢索。然後通過 Ctrl + Alt + F1 進入文本模式,輸入帳號密碼登錄,通過 Ctrl + Alt + F7 可返回圖形化模式,在文本模式登錄後首先關閉桌面服務:
sudo service lightdm stop
這裏會要求你輸入賬戶的密碼。然後通過 Ctrl + Alt + F7 發現已無法成功返回圖形化模式,說明桌面服務已成功關閉,注意此步對接下來的 nvidia 驅動安裝尤爲重要,必需確保桌面服務已關閉。按Ctrl + Alt + F1 再次進入文本模式,先卸載之前的顯卡驅動:
sudo apt-get purge nvidia*
然後運行 CUDA 安裝文件安裝驅動,之前我們已經把 CUDA 安裝文件移動至 HOME文件夾,直接通過 sh 命令運行安裝文件即可:
sudo sh cuda_9.1.85_387.26_linux.run --no-opengl-libs #run文件的文件名根據自己下的文件名修改,默認是我提供的文件
執行此命令約1分鐘後會出現安裝協議要你看,剛開始是0%,此時長按回車鍵讓此百分比增長,直到100%,然後按照提示操作即可,先輸入 accept ,然後是否安裝顯卡驅動選擇yes
-
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?
-
(y)es/(n)o/(q)uit: y
之後會問你是否安裝 nvidia-xconfig,建議選擇no。
-
do you want to run nvidia-xconfig?
-
(y)es/(n)o/(q)uit: n
是否安裝 CUDN 9.1 都選擇no。也就是我們這次只安裝一個顯卡驅動,目的是先保證顯卡驅動安裝成功,否則安裝CUDA 9.1很容易失敗。
-
Install the CUDA 9.1 Samples?
-
(y)es/(n)o/(q)uit: n
-
Install the CUDA 9.1 Toolkit?
-
(y)es/(n)o/(q)uit: n
安裝完成後重啓系統:
reboot
重啓系統後看看桌面顯示的分辨率正不正常。如果應用圖標很大,像素很渣,說明顯卡驅動沒有安裝成功,有可能是因爲禁用nouveau沒有生效,也有可能是驅動不匹配,這時候可以使用我提供的方法二。安裝完成後通過以下命令查看顯卡信息:
nvidia-settings
我的電腦顯示如下信息:
方法二:直接在線安裝(此方法需要聯網),適用於CUDA 9.0
注意:再次提醒此方法暫時不適用於CUDA 9.1
首先仍舊是關閉桌面服務並卸載之前的顯卡驅動(這兩步見方法一),隨後加入官方ppa源:
sudo add-apt-repository ppa:graphics-drivers/ppa
之後刷新軟件庫並安裝顯卡驅動:
-
sudo apt-get update
-
sudo apt-get install nvidia-384 nvidia-settings nvidia-prime
我用此命令會自動安裝 384.111版本的驅動(我使用 nvidia-367 安裝的也是384.111版本的驅動)。安裝完成後輸入reboot重啓系統,假如桌面分辨率沒什麼問題應該安裝成功了。之後通過下面命令查看顯卡信息:
nvidia-settings
第三步:配置環境變量
使用 gedit 命令打開配置文件:
sudo gedit ~/.bashrc
打開後在文件最後加入以下兩行內容:
-
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
-
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
保存並退出。
第四步:安裝 CUDA 9.1
安裝完顯卡驅動後,CUDA toolkit和samples可單獨安裝,直接在終端運行安裝,無需進入文本模式:
sudo sh cuda_9.1.85_387.26_linux.run --no-opengl-libs
執行此命令約1分鐘後會出現安裝協議要你看,剛開始是0%,此時長按回車鍵讓此百分比增長,直到100%,然後按照提示操作即可,先輸入 accept ,是否安裝顯卡驅動選擇no:
-
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?
-
(y)es/(n)o/(q)uit: n
其他的都選擇yes或者默認,等待安裝完成:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26?
(y)es/(n)o/(q)uit: n
Install the CUDA 9.1 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.1 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 9.1 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/ccem ]:
Installing the CUDA Toolkit in /usr/local/cuda-9.1 ...
Installing the CUDA Samples in /home/ccem ...
Copying samples to /home/ccem/NVIDIA_CUDA-9.1_Samples now...
Finished copying samples.
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.1
Samples: Installed in /home/ccem
Please make sure that
- PATH includes /usr/local/cuda-9.1/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.1/lib64, or, add /usr/local/cuda-9.1/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.1/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.1/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.1 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Logfile is /tmp/cuda_install_36731.log
假如出現:
Installing the CUDA Toolkit in /usr/local/cuda-9.1 …
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
原因是缺少相關的依賴庫,安裝相應庫就解決了,安裝庫完成後重裝一下CUDA Toolkit即可:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
安裝完成後配置CUDA環境變量,使用 gedit 命令打開配置文件:
sudo gedit ~/.bashrc
在該文件最後加入以下兩行並保存:
-
export PATH=/usr/local/cuda/bin:$PATH #/usr/local/cuda和/usr/local/cuda-9.1是同一個文件夾,前者是後者的鏡像
-
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
使該配置生效:
source ~/.bashrc
檢驗CUDA 是否安裝成功,輸入:
cd /usr/local/cuda-9.1/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
會出現你的顯卡的詳細信息。假如出現:
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL
那說明顯卡驅動版本和CUDA 9.1不適配,目前 384.xx版本的驅動是不支持CUDA 9.1 的,這時候就嘗試安裝更加新的驅動。若還是不行就放棄 CUDA 9.1,安裝CUDA 9.0吧,趁還來得及。此博客同樣適用於安裝CUDA 9.0,只需將配置文件中出現cuda-9.1的地方改成cuda-9.0即可。
卸載CUDA 9.1 的方法:
cd /usr/local/cuda/bin
sudo ./uninstall_cuda_9.1.pl
卸載完成後如果顯示:Not removing directory, it is not empty: /usr/local/cuda-9.1 ,假如需要重裝CUDA 9.0的話就把這個文件夾刪除。在/usr/local/路勁下輸入:
sudo rm -r cuda-9.1
第五步:安裝cuDNN v7
我提供的百度雲文件解壓後的cudnn文件以“.solitairetheme8”結尾,將其重命名爲“.tgz”結尾的文件,然後解壓到當前文件夾,得到一個cudn 文件夾,該文件夾下有include 和 lib64 兩個文件夾,命令行進入其中的include 文件夾路徑下,然後進行以下操作:
sudo cp cudnn.h /usr/local/cuda/include/ #複製頭文件
然後命令行進入 cudn/lib64 文件夾路徑下,運行以下命令(CUDA 9.0也是一樣的命令):
-
sudo cp lib* /usr/local/cuda/lib64/ #複製動態鏈接庫
-
cd /usr/local/cuda/lib64/
-
sudo rm -rf libcudnn.so libcudnn.so.7 #刪除原有動態文件
-
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成軟銜接
-
sudo ln -s libcudnn.so.7 libcudnn.so #生成軟鏈接
隨後需要將路徑/usr/local/cuda/lib64 添加到動態庫,分兩步:
1)安裝vim。輸入:
sudo apt-get install vim-gtk
2)輸入:
sudo vim /etc/ld.so.conf.d/cuda.conf
鍵盤按i進入編輯狀態,添加文字:
/usr/local/cuda/lib64
然後按esc,輸入:(注意有冒號)
:wq #保存退出
終端下接着輸入 sudo ldconfig 命令使鏈接生效。
軟鏈接後可以用sudo ldconfig -v 命令查看是否鏈接成功:是否有/usr/local/cuda/lib64文件夾。ldconfig命令的用途主要是在默認搜尋目錄/lib和/usr/lib以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態鏈接庫(格式如lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件。
安裝完成後可用 nvcc -V 命令驗證是否安裝成功,若出現以下信息則表示安裝成功:
-
nvcc: NVIDIA (R) Cuda compiler driver
-
Copyright (c) 2005-2017 NVIDIA Corporation
-
Built on Fri_Nov__3_21:07:56_CDT_2017
-
Cuda compilation tools, release 9.1, V9.1.85
第六步:安裝 OpenCV 3.4.0
進入官網 : http://opencv.org/releases.html , 選擇 3.4.0 版本的 sources , 下載 opencv-3.4.0.zip 。隨後解壓到你要安裝的位置,命令行進入已解壓的文件夾 opencv-3.4.0 目錄下,執行:
mkdir build # 創建編譯的文件目錄
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 #編譯
在98%的時候會等很久很久,屬於正常現象。編譯過程很順利,編譯成功後安裝:
sudo make install #安裝
安裝完成後通過查看 opencv 版本驗證是否安裝成功:
pkg-config --modversion opencv
卸載OpenCV的方法:進入OpenCV解壓文件夾中的buid 文件夾:
cd /home/ccem/opencv-3.4.0/build
運行:
sudo make uninstall
然後把整個opencv-3.4.0文件夾都刪掉。隨後再運行:
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv
把一些殘餘的動態鏈接文件和空文件夾刪掉。有些文件夾已經被刪掉了所以會找不到路徑。
第七步:安裝 Caffe
首先cd 到你要安裝的路徑下運行:
git clone https://github.com/BVLC/caffe.git
這時候會出現一個caffe文件夾。命令行進入此文件夾,運行:
sudo cp Makefile.config.example Makefile.config
此命令是將 Makefile.config.example 文件複製一份並更名爲 Makefile.config ,複製一份的原因是編譯 caffe 時需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 給出的配置文件例子,不能用來編譯 caffe。
然後修改 Makefile.config 文件,在 caffe 目錄下打開該文件:
sudo gedit Makefile.config
修改 Makefile.config 文件內容:
1.應用 cudnn
將:
#USE_CUDNN := 1
修改爲:
USE_CUDNN := 1
2.應用 opencv 3 版本
將:
#OPENCV_VERSION := 3
修改爲:
OPENCV_VERSION := 3
3.使用 python 接口
將:
#WITH_PYTHON_LAYER := 1
修改爲
WITH_PYTHON_LAYER := 1
4.修改 python 路徑
將:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改爲:
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
此python路徑爲系統自帶python的路徑,假如想使用Anaconda的python的話需要在其他地方修改。
5.去掉compute_20
找到
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
改爲:
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
由於CUDA 9.x +並不支持compute_20,此處不修改的話編譯caffe時會報錯:
nvcc fatal : Unsupported gpu architecture 'compute_20'
然後修改 caffe 目錄下的 Makefile 文件(修改的地方找起來比較困難的話可以複製到word裏查找):
將:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換爲:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
將:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改爲:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
至此caffe配置文件修改完畢,可以開始編譯了。假如顯卡不是feimi架構的可以輸入如下命令防止出現Unsupported gpu architecture 'compute_20'的問題:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler ..
在 caffe 目錄下執行 :
make all -j8
這時如果之前的配置或安裝出錯,那麼編譯就會出現各種各樣的問題,所以前面的步驟一定要細心。假如編譯失敗可對照出現的問題Google解決方案,再次編譯之前使用 sudo make clean 命令清除之前的編譯,報錯:nothing to be done for all 就說明沒有清除之前的編譯。編譯成功後可運行測試:
sudo make runtest -j8
運行結果如下:
可以看到2123個tests中只有一個失敗了:
BatchReindexLayerTest/3.TestGradient, where TypeParam = caffe::GPUDevice<double>
Google了一下,貌似使用CUDA 9.1加雙顯卡的都有這個錯誤,暫且不管它,目前不影響使用。使用mnist測試程序是可以運行的。CUDA 9.0則測試全部通過。
第八步:用 mnist 手寫數據集驗證
mnist測試方法如下(以下命令都在caffe目錄下運行):
1)進入caffe文件夾,看看此文件夾裏是否有一個build文件夾,沒有的話運行:
make all -j8
2)下載mnist數據庫,在caffe目錄下運行:
sudo ./data/mnist/get_mnist.sh
3) 將二進制數據庫文件轉換成lmdb數據庫格式:
sudo ./examples/mnist/create_mnist.sh
4)訓練lenet網絡:
sudo ./examples/mnist/train_lenet.sh
結果如下:
可以看到測試的識別準確率爲 99.08%。至此整個caffe已經配置完畢。
第九步:在PyCharm上運行caffe
目前雖然已經成功配置了caffe,但是只能在命令行裏運行,弊端很明顯,不利於調試。所以可以配置一下使其在PyCharm上運行。PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。
我已經成功在PyCharm上運行了caffe,這一部分我另外寫了一篇博客,詳見:點擊打開鏈接
:http://blog.csdn.net/balixiaxuetian/article/details/79161821
10、補充(持續更新)
1)caffe配置完成後將cuda 9.1換成 9.0的方法
我前面也提到過,電腦安裝CUDA 9.1自帶的顯卡驅動版本 387.26不穩定,在某次重啓後失效了。於是我重新安裝了384.111版本的顯卡驅動。但噁心的是,CUDA 9.1 不支持384.xx版本的驅動,於是我想換成CUDA 9.0。但是此時我已經完全配置好caffe了,不需要全部推倒重來,只需先卸載CUDA 9.1和openCV 3.4.0,然後重裝CUDA 9.0,cuDNN 和openCV 3.4.0 即可,卸載的方法前面步驟裏有,其他的都不需要動(完全按照我的教程配置的話環境變量都不需要改,否則需要檢查一下環境變量,將cuda-9.1出現的地方換成cuda-9.0), make runtest 即可全部通過。第九步中把pycaffe重新編譯一下即可。
2)CUDA 9.0下載
CUDA 9.0可在此鏈接下載:https://developer.nvidia.com/cuda-toolkit-archive,還需要下載對應的cuDNN:https://developer.nvidia.com/rdp/cudnn-download#a-collapse704-9 ,也可以通過我的百度雲分享下載,見我的資源:點擊打開鏈接http://download.csdn.net/download/balixiaxuetian/10229488
下面是pycharm配置caffe運行的設置
Ubuntu 16.04 使用PyCharm運行caffe配置
置頂 2018年01月25日 15:23:07 天朝小王子 閱讀數:2201
原創博客,轉載請說明出處!
Ubuntu 16.04+CUDA 9.1+cuDNN v7+OpenCV 3.4.0+Caffe的配置見我的另一篇博文,這邊博文講解配置好caffe之後如何使其在PyCharm上運行。配置過程分爲以下六步:
1、安裝依賴庫
2、配置環境變量
3、編譯 pycaffe
4、配置PyCharm所需環境
5、安裝PyCharm
6、設置PyCharm解釋器
以下爲詳細配置過程:
1、安裝依賴庫
爲了防止遺漏,把下面的都裝一下,已經裝過的不會重複安裝的,防止後面出現找不到模塊的問題,在終端依次輸入如下命令:
pip install -U scikit-image (有待安裝) #若沒有安裝pip: sudo apt install python-pip
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler (如果前面已經安裝這裏不需要)
sudo apt-get install --no-install-recommends libboost-all-dev (如果前面已經安裝這裏不需要)
sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags (有待安裝的包)
sudo apt-get install protobuf-c-compiler protobuf-compiler (有待安裝的包)
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev (如果前面已經安裝這裏不需要)
2、配置環境變量
使用 gedit 命令打開配置文件:
sudo gedit ~/.bashrc
在文件最下面寫入(導入caffe/python文件夾的路徑,檢查一下此路徑是否和我的相同):
export PYTHONPATH=~/caffe/python:$PYTHONPATH (注意路徑 我的是/usr/local/caffe)
不做這一步 import caffe的時候會報錯:找不到caffe模塊。保存退出,並在終端寫入下面語句,使環境變量生效:
source ~/.bashrc
3、編譯 pycaffe
cd 進入caffe文件夾,運行:
sudo make pycaffe -j8
編譯 pycaffe 成功後,驗證一下是否可以在 python 中導入 caffe 包,首先進入 python 環境,直接在命令行輸入:
python(注意運行哪個版本的python)
然後導入 caffe :
>>> import caffe
若不報錯則表示 caffe 的 python 接口已正確編譯。假如報錯的話執行一下 “4、配置pycharm所需環境”後再試一下。退出python按ctrl+z即可。
4、配置PyCharm所需環境
這一步的目的其實和第一步相同,進一步安裝所需的依賴庫。在caffe根目錄的python文件夾下,有一個requirements.txt的清單文件,上面列出了需要的依賴庫,按照這個清單安裝就可以了。在安裝scipy庫的時候,需要fortran編譯器(gfortran),如果沒有這個編譯器就會報錯,因此,我們可以先安裝一下。總的步驟爲,進入 caffe/python 目錄下,執行安裝代碼:
sudo apt-get install gfortran
for req in $(cat requirements.txt); do sudo pip install $req; done
安裝完成以後執行:
sudo pip install -r requirements.txt
就會看到,安裝成功的,都會顯示Requirement already satisfied, 沒有安裝成功的,會繼續安裝。
5、安裝PyCharm
安裝過程參考:http://blog.csdn.net/zhuanshu666/article/details/73554885
專業版的可能無法激活,可以下載免費的社區版。
打開PyCharm客戶端的方法:
cd /home/ccem/Downloads/pycharm-2017.3.3/bin #此處按照自己的pycharm解壓文件夾的路徑修改
sh ./pycharm.sh
6、設置PyCharm解釋器
由於系統中安裝了多個python版本,需要指定使用哪一個版本。先創建一個工程(命名爲test)和一個python文件,創建方法和visual studio類似。然後設置解釋器:依次點擊:左上角file -- settings..-- Project:test-- Project interpreter --彈出窗口右上角齒輪--add local--System Interpreter --下拉菜單選擇 usr/bin/python 2.7 -- OK -- Apply
隨後在python文件裏輸入 import caffe ,點擊上方菜單欄裏的Run下面的Run運行,顯示Process finished with exit code 0 說明運行成功。假如顯示找不到某個模塊就通過上述步驟在下拉里選擇其他解釋器進行嘗試。選擇解釋器時下面會列出已經安裝的依賴庫,安裝依賴庫最多的那個一般就是要選的那個。
接下來就可以愉快的開始caffe的編程之旅啦!
https://blog.csdn.net/xunan003/article/details/73555424 anaconda下caffe的坑
caffe利用anaconda配置python接口(cpu版可視化工具)
2017年06月22日 16:08:40 xunan003 閱讀數:8838
參考博文:http://www.cnblogs.com/denny402/p/5679037.html
前沿
何爲可視化,請參考《21天實戰caffe第16天》可視化的相關理論。caffe提供三種接口,分別爲C++接口、python接口和matlab接口。C++接口不用我們自己配置,因爲caffe的底層代碼都是由C++編寫的,而python接口和matlab接口作爲可視化的工具需要我們自己配置。由於matlab文件太大,所以博主沒有配置matlab接口,今天就來講一講博主配置python接口的一些心酸事並最終成功跳坑。
一、坑人的安裝方法
首先我們要知道的是 python環境不能單獨配置,必須要先編譯好caffe,才能編譯python環境。如果讀者連caffe都沒有配置好那就不要玩接口了,先去把caffe配置好。相關配置方法可以參考博主博文,博文鏈接:點擊打開鏈接
參考博文中提到的第一種方法,先安裝python和pip,然後再安裝pyhon接口依賴庫配置。一般ubuntu14.04系統自帶的是python2.7,所以如果我們不要求更高的python版本就默認版的就可以了,如果需要可以自行搜索安裝python3.4的方法。具體配置接口的方法與2.7版本類似。我們就以python2.7爲例說明。
如果選用安裝python接口依賴庫的方法來配置,我相信你們會被各種各樣的問題給整哭的,按照參考博文的方法去配置。並不是方法本身有什麼問題,解決的方法只有不停的重新安裝,一次不成功馬上再來一次。
二、利用anaconda安裝
1、首先第一步我們來安裝anaconda,其實如果我們學到這裏了,我相信大多數人已經安裝了anaconda。安裝方法爲:
先到https://www.continuum.io/downloads 下載anaconda, 現在的版本有python2.7版本和python3.5版本,下載好對應版本、對應系統的anaconda,它實際上是一個sh腳本文件,大約280M左右。我下載的是linux版的python 2.7版本。
下載成功後,在終端執行(2.7版本):
# bash Anaconda2-2.4.1-Linux-x86_64.sh
或者3.5 版本:
# bash Anaconda3-2.4.1-Linux-x86_64.sh
在安裝的過程中,會問你安裝路徑,直接回車默認就可以了。有個地方問你是否將anaconda安裝路徑加入到環境變量(.bashrc)中,這個一定要輸入yes
安裝成功後,會有當前用戶根目錄下生成一個anaconda2的文件夾,裏面就是安裝好的內容。
博主安裝的爲anaconda2。安裝完成後在主文件夾下生成了一個文件爲anaconda2。
2、我們來看看之前我們安裝過的python依賴庫,注意這個跟咱們之前配置caffe安裝的那些依賴庫關係不大。不要想着我以前裝過了怎麼還要裝。
首先我們要知道我們到底要安裝那些依賴庫。在caffe/python目錄下我們可以找到一個文件爲requirements.txt,裏面都是我們需要安裝的,後面的版本號我們可以不用去要求,管他,最新版的也可以的。
在安裝之前,我們先來查看一下我們都已經安裝過了哪些。在主目錄下命令:conda list將會把所有的以安裝的顯示出來。我們只要對着requirements.txt這個文件查找哪個還沒有安裝。
這裏有一個問題,可能會出現報錯:conda:未找到命令
解決方法:
在你的主目錄(自己的權限目錄)下,使用下面的命令:
-
export PATH=~/anaconda2/bin:$PATH
-
conda --v
如果結果是你的anaconda2的版本號,那就成功了
然後就可以使用conda命令了。
將沒有安裝的庫應用以下命令安裝:
conda install ***
例如博主經過conda list檢查然後發現leveldb和protobuf沒有安裝,則安裝:
-
conda install leveldb
-
conda install protobuf
安裝完成後,我們就可以編譯配置了。
3、編譯python接口
首先,將caffe根目錄下的python文件夾加入到環境變量
打開配置文件bashrc
# sudo vi ~/.bashrc
在最後面加入
export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH
注意 /home/xxx/caffe/python 是我的路徑,這個地方每個人都不同,需要修改
保存退出,更新配置文件
# sudo ldconfig
然後修改編譯配置文件Makefile.config。在caffe目錄下打開Makefile.config修改。注意,不是隨便修改的,按照參考博文的說法直接給了結果,一開始是不知所云的,所以彙總一下需要修改的地方。漢字標註需要注意:
-
## Refer to http://caffe.berkeleyvision.org/installation.html
-
# Contributions simplifying and improving our build system are welcome!
-
# cuDNN acceleration switch (uncomment to build with cuDNN).
-
# USE_CUDNN := 1 #參考博文是gpu版本的,所以這裏沒有屏蔽,而我們cpu版本的則需要屏蔽
-
# CPU-only switch (uncomment to build without GPU support).
-
CPU_ONLY := 1 #cpu版本的不需要屏蔽
-
# uncomment to disable IO dependencies and corresponding data layers
-
# USE_OPENCV := 0
-
# USE_LEVELDB := 0
-
# USE_LMDB := 0
-
# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
-
# You should not set this flag if you will be reading LMDBs with any
-
# possibility of simultaneous read and write
-
# ALLOW_LMDB_NOLOCK := 1
-
# Uncomment if you're using OpenCV 3
-
# OPENCV_VERSION := 3
-
# To customize your choice of compiler, uncomment and set the following.
-
# N.B. the default for Linux is g++ and the default for OSX is clang++
-
# CUSTOM_CXX := g++
-
# CUDA directory contains bin/ and lib/ directories that we need.
-
CUDA_DIR := /usr/local/cuda
-
# On Ubuntu 14.04, if cuda tools are installed via
-
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
-
# CUDA_DIR := /usr
-
# CUDA architecture setting: going with all of them.
-
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
-
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
-
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-
-gencode arch=compute_20,code=sm_21 \
-
-gencode arch=compute_30,code=sm_30 \
-
-gencode arch=compute_35,code=sm_35 \
-
-gencode arch=compute_50,code=sm_50 \
-
-gencode arch=compute_52,code=sm_52 \
-
-gencode arch=compute_60,code=sm_60 \
-
-gencode arch=compute_61,code=sm_61 \
-
-gencode arch=compute_61,code=compute_61
-
# BLAS choice:
-
# atlas for ATLAS (default)
-
# mkl for MKL
-
# open for OpenBlas
-
BLAS := atlas
-
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
-
# Leave commented to accept the defaults for your choice of BLAS
-
# (which should work)!
-
# BLAS_INCLUDE := /path/to/your/blas
-
# BLAS_LIB := /path/to/your/blas
-
# Homebrew puts openblas in a directory that is not on the standard search path
-
# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
-
# BLAS_LIB := $(shell brew --prefix openblas)/lib
-
# This is required only if you will compile the matlab interface.
-
# MATLAB directory should contain the mex binary in /bin.
-
# MATLAB_DIR := /usr/local
-
# MATLAB_DIR := /Applications/MATLAB_R2012b.app
-
# NOTE: this is required only if you will compile the python interface.
-
# We need to be able to find Python.h and numpy/arrayobject.h.
-
PYTHON_INCLUDE := /usr/include/python2.7 \
-
/usr/lib/python2.7/dist-packages/numpy/core/include
-
# Anaconda Python distribution is quite popular. Include path:
-
# Verify anaconda location, sometimes it's in root.
-
ANACONDA_HOME := $(HOME)/anaconda #此處anaconda路徑原始文件是屏蔽的,現在我們把它改過來下面的也是這樣,這是基於python2.7版本需要修改的地方
-
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
-
$(ANACONDA_HOME)/include/python2.7 \
-
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
-
# Uncomment to use Python 3 (default is Python 2)
-
# PYTHON_LIBRARIES := boost_python3 python3.5m #如果你的python是3.5版本的那麼就需要把這裏的屏蔽去掉
-
# PYTHON_INCLUDE := /usr/include/python3.5m \
-
# /usr/lib/python3.5/dist-packages/numpy/core/include
-
# We need to be able to find libpythonX.X.so or .dylib.
-
# PYTHON_LIB := /usr/lib
-
PYTHON_LIB := $(ANACONDA_HOME)/lib
-
# Homebrew installs numpy in a non standard path (keg only)
-
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
-
# PYTHON_LIB += $(shell brew --prefix numpy)/lib
-
# Uncomment to support layers written in Python (will link against Python libs)
-
WITH_PYTHON_LAYER := 1
-
# Whatever else you find you need goes here.
-
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /home/xn/local_install/include
-
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/xn/local_install/lib
-
# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
-
# INCLUDE_DIRS += $(shell brew --prefix)/include
-
# LIBRARY_DIRS += $(shell brew --prefix)/lib
-
# NCCL acceleration switch (uncomment to build with NCCL)
-
# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
-
# USE_NCCL := 1
-
# Uncomment to use `pkg-config` to specify OpenCV library paths.
-
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
-
# USE_PKG_CONFIG := 1
-
# N.B. both build and distribute dirs are cleared on `make clean`
-
BUILD_DIR := build
-
DISTRIBUTE_DIR := distribute
-
# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
-
# DEBUG := 1
-
# The ID of the GPU that 'make runtest' will use to run unit tests.
-
TEST_GPUID := 0
-
# enable pretty build (comment to see full commands)
-
Q ?= @
至此Makefile.config文件修改並保存完成。下面就是真的編譯了。
編譯之前最好先clean一下可以減少出錯機率:
sudo make clean
在caffe路徑下編譯:
sudo make pycaffe
編譯成功後,不能重複編譯,否則會提示 Nothing to be done for "pycaffe"的錯誤。下圖是編譯成功的界面。
防止其它意外的錯誤,最好還編譯一下:
-
# sudo make test -j8
-
# sudo make runtest -j8
(1)也許你在編譯runtest的時候,會報這樣的錯誤:
.build_release/test/test_all.testbin: error while loading shared libraries: libhdf5.so.10: cannot open shared object file: No such file or directory
這是因爲 libhdf5.so的版本問題,你可以進入/usr/lib/x86_64-linux-gnu看一下,你的libhdf5.so.x中的那個x是多少,比如我的是libhdf5.so.7
因此可以執行下面幾行代碼解決:
-
# cd /usr/lib/x86_64-linux-gnu
-
# sudo ln -s libhdf5.so.7 libhdf5.so.10
-
# sudo ln -s libhdf5_hl.so.7 libhdf5_hl.so.10
-
# sudo ldconfig
(2)也可能這樣報錯: .build_release/tools/caffe: error while loading shared libraries: libboost_system.so.1.58.0: cannot open shared object file: No such file or directory
原因與上面類似在usr/lib/x86_64-linux-gnu下查看到我的版本是libboost_system.so.1.54.0,所以用下面的命令解決後重新runtest。
-
# cd /usr/lib/x86_64-linux-gnu
-
# sudo ln -s libboost_system.so.1.54.0 libboost_system.so.1.58.0
-
# sudo ln -s _libboost_system_hl.so.1.54.0 libboost_system_hl.so.1.58.0
-
# sudo ldconfig
(3)之後還可能出現這樣的報錯:.build_release/tools/caffe: error while loading shared libraries: libboost_thread.so.1.58.0: cannot open shared object file: No such file or directory
原因與上面類似,解決方法:
-
# cd /usr/lib/x86_64-linux-gnu
-
# sudo ln -s libboost_thread.so.1.54.0 libboost_thread.so.1.58.0
-
# sudo ln -s _libboost_thread_hl.so.1.54.0 libboost_thread_hl.so.1.58.0
-
# sudo ldconfig
完成這些只有,再次runtest發現可以運行了。
最終查看python接口是否編譯成功:
進入python環境,進行import操作
-
# python
-
>>> import caffe
博主最後這裏出現一個問題,配置不成功。出現報錯無法識別caffe。搜索瞭解決方案但不可以解決。不知到是哪裏除了問題,唯一有可能的就是
# sudo make runtest -j8
出了問題,然後博主重新執行此命令,make完成後發現成功了。至此python環境接口配置完成。
3、安裝jupyter
安裝了python還不行,還得安裝一下ipython,後者更加方便快捷,更有自動補全功能。而ipython notebook是ipython的最好展現方式。最新的版本改名爲jupyter notebook,我們先來安裝一下。(如果安裝了anaconda, jupyter notebook就已經自動裝好,不需要再安裝)
# sudo pip install jupyter
這裏博主又出現了報錯,一堆紅色,如下圖。
根據之前的經驗,應該是不可以用sudo權限運行。採用如下命令:
pip install jupyter
成功!!!!
也有可能不成功,因爲本來是配好了,結果博主隔了兩天重新啓動jupter無法打開了。不知哪裏出現問題。
根據以上紅色的問題發現還是pip的問題,其實就是pip版本太老的原因,博主先卸載原先pip,命令如下:
sudo apt-get remove python-pip
然後利用install安裝新下載的pip,不要用apt-get安裝。
-
wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz"
-
tar -xzvf pip-1.5.6.tar.gz
-
cd pip-1.5.6
-
python setup.py install
然後再次利用pip安裝看看能不能成功,如果繼續報錯,則利用如下命令更新pip:
sudo easy_install --upgrade pip
然後再次安裝jupyter應該就差不多可以成功了。
安裝成功後,運行notebook
# jupyter notebook
就會在瀏覽器中打開notebook, 點擊右上角的New-python2, 就可以新建一個網頁一樣的文件,擴展名爲ipynb。在這個網頁上,我們就可以像在命令行下面一樣運行python代碼了。輸入代碼後,按shift+enter運行,更多的快捷鍵,可點擊上方的help-Keyboard shortcuts查看,或者先按esc退出編輯狀態,再按h鍵查看。
至此,全部完成。如有意見或建議,請留言!
如要退出jupyter終端環境,按下ctrl+c然後選擇y即可。
180519 五種方法利用Anaconda安裝Caffe
2018年05月19日 20:41:22 hustliu2018 閱讀數:6002
版權聲明:本文爲博主原創文章,轉載請註明出處。 https://blog.csdn.net/qq_33039859/article/details/80377356
Google: 使用anaconda安裝caffe
使用Anaconda安裝caffe
ubuntu16.04 + caffe +python
在 python3.5 下使用 Caffe
Python3.5 Anaconda3 Caffe深度學習框架搭建
*-ubuntu16.04下安裝opencv3.1+anaconda2+caffe
*-Ubuntu16.04+matlab2014a+anaconda2+OpenCV3.1+caffe安裝
Ubuntu 16.04下安裝CUDA8.0+Caffe+TensorFlow-GPU+Pycharm過程(Simple)
Ubuntu 16.04 安裝CUDA8.0+Cudnn6.0+TensorFlow+Caffe安裝
# 雖然該方法安裝的是python=2.7版本,但是目前是我看到最簡單的安裝方法了
# 首先創建一個新的運行環境並安裝相應工具包,避免與其他配置的衝突
# 指定版python=2.7 此處一起先安裝anaconda,進而可以安裝spyder與jupyter編輯器
conda create -n caffe27 python=2.7 anaconda
# 然後下面二選一即可,安裝caffe
conda install -c conda-forge caffe
conda install -c conda-forge/label/broken caffe
# 如果出現numpy導入錯誤,是因爲 conda-forge中的numpy版本過低,可再輸入下面命令
pip install numpy --upgrade
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
方法2:Install Caffe With Anaconda python=2.7
方法3:使用Anaconda創建caffe和tensorflow共存環境python=3.6
方法4:Caffe installation with anaconda in one line (with solvable bugs)
- 筆者方法 4.1
$conda create -n py2cv3 python=2.7
$source activate py2cv3
(py2cv3)$conda install -c intel caffe
- 1
- 2
- 3
- 讀者留言 4.2
GPU version: conda install -c anaconda caffe-gpu
CPU version: conda install -c anaconda caffe
- 1
- 2
- 添加編輯器(否者其他編輯器無法訪問caffe所在目錄,出現
no module named caffe
)
conda install spyder
conda install jupyter notebook
- 1
- 2
-
將Github下載的代碼解壓,複製所有文件至caffe-gpu 安裝的文件夾,警告出選skip
- 運行example的時候,將
import caffe
方式jupyter notebook
最前面,後面這點非常重要,否則會報錯!