Ubuntu16.04安装caffe教程(同时安装tensorflow与Pytorch)
#Ubuntu16.04安裝caffe教程
經(jīng)過一整天的安裝,終于在筆記本上安裝成功了Caffe記錄一下。
我的電腦為i7 6700 + NVIDIA GTX960M,因?yàn)槭怯螒虮具€是雙系統(tǒng),顯卡驅(qū)動(dòng)有些難裝。
- 安裝依賴項(xiàng)
- 下載cuda8.0
- 安裝cudnn
- 安裝anaconda3
- 安裝opencv
- 安裝caffe
- 安裝tensorflow
##安裝依賴項(xiàng)
在這里我拆開安裝因?yàn)樵诎惭b時(shí)候遇到了一些錯(cuò)誤。
##顯卡驅(qū)動(dòng)的安裝
到設(shè)置->軟件和更新->附加驅(qū)動(dòng)查看
記住型號(hào)驅(qū)動(dòng)為nvidia-384
使用了推薦驅(qū)動(dòng)的可以不用重新安裝驅(qū)動(dòng),去下載對(duì)應(yīng)的cuda即可。
若是沒有安裝驅(qū)動(dòng):
我按照網(wǎng)上其他人的安裝方法來,直接導(dǎo)致炸機(jī)了。
方法一、正常方法是去英偉達(dá)官網(wǎng)下載對(duì)應(yīng)版本的驅(qū)動(dòng)
http://www.nvidia.com/Download/index.aspx?lang=en-us
注意驅(qū)動(dòng)安裝包最好放在HOME目錄
終端輸入sudo gedit /etc/modprobe.d/blacklist.conf
后在最后一行加上 blacklist nouveau將Ubuntu自帶的顯卡驅(qū)動(dòng)加入黑名單
在終端輸入: sudo update-initramfs -u更新一下
重啟電腦
沒有驅(qū)動(dòng)開機(jī)可能直接報(bào)錯(cuò),此時(shí)不要慌Ctrl+Alt+F1進(jìn)入終端界面
sudo service lightdm stop 關(guān)閉圖形界面
sudo chmod +x NVIDIA-Linux-x86_64-375.20.run 使得驅(qū)動(dòng)有執(zhí)行權(quán)限
sudo ./NVIDIA-Linux-x86_64-375.20.run 運(yùn)行驅(qū)動(dòng)程序
一步步按指示來,安裝成功后重啟。
方法二、按方法一來的炸機(jī)的只能重裝驅(qū)動(dòng)了,不要慌,按Ctrl+Alt+F1進(jìn)入文字界面。
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384 #此處要根據(jù)上面查詢到的版本適當(dāng)更改
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
之后重啟應(yīng)該就沒問題啦
##下載cuda8.0
在官網(wǎng)https://developer.nvidia.com/cuda-downloads找到cuda8.0下載。
嫌麻煩的直接在我百度云下載吧https://pan.baidu.com/s/11v8nqXWZUSVB8K1aqT01lw
運(yùn)行sudo chmod +x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run
之后就是一系列的選擇,在選擇驅(qū)動(dòng)時(shí)選否,其他都選是就行了。
然后設(shè)置cuda環(huán)境變量
sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
source ~/.bashrc //使配置生效
驗(yàn)證cuda是否安裝成功
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
出現(xiàn)這個(gè)就代表安裝成功啦。
##安裝cudnn
https://developer.nvidia.com/rdp/cudnn-download到官網(wǎng)下載,對(duì)應(yīng)cuda版本的Linux的cudnn壓縮包。
官網(wǎng)下載 cudnn 需要注冊(cè)帳號(hào)并登錄
嫌麻煩的https://download.csdn.net/download/tianjiazhao/10506832從我的csdn下載也行,嘿嘿
講壓縮包解壓,兩個(gè)文件夾。
在cudn/include 路徑下
sudo cp cudnn.h /usr/local/cuda/include/
進(jìn)入cudn/lib64
sudo cp lib* /usr/local/cuda/lib64/ #復(fù)制動(dòng)態(tài)鏈接庫
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #刪除原有動(dòng)態(tài)文件
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成軟銜接
sudo ln -s libcudnn.so.5 libcudnn.so #生成軟鏈接
驗(yàn)證是否成功 輸入nvcc-V
顯示如圖則成功。
##安裝opencv3.4
sudo apt-get update 先更新一下
1.安裝build-essential、cmake、git和pkg-config工具
sudo apt-get install build-essential cmake git pkg-config
2.安裝所需要的各種圖像包:
sudo apt-get install libjpeg8-dev (jpeg圖像包)
sudo apt-get install libtiff5-dev (tif圖像包)
sudo apt-get install libjasper-dev (JPEG-2000圖像包)
sudo apt-get install libpng12-dev (png圖像包)
3.視頻所需要的的包:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
4.安裝gtk2.0:
sudo apt-get install libgtk2.0-dev
5.優(yōu)化包的安裝:
sudo apt-get install libatlas-base-dev gfortran
到這一步各種工具包就安裝成功啦。
https://github.com/opencv/opencv/releases到這個(gè)網(wǎng)站去下載opencv源碼tar.gz格式的,感覺安裝比較快。
下載完之后解壓
1.cd ~ 移動(dòng)到解壓的opencv目錄
2.建立一個(gè)build文件夾
mkdir build
3.cd build 進(jìn)入build文件夾
4.安裝到 /urs/local
開啟cuda:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_CUDA=ON \ -D WITH_CUBLAS=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_CUFFT=ON \ -D WITH_NVCUVID=ON \ -DWITH_V4L=ON \ -D WITH_LIBV4L=ON \ -D WITH_OPENGL=ON \ -DWITH_FFMPEG=ON \ -D INSTALL_C_EXAMPLES=ON \ -D BUILD_EXAMPLES=ON ..不開啟
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local ..5.開始編譯:
sudo make //等待一會(huì) 可以使用 sudo make -j4 加快速度不過我使用的時(shí)候系統(tǒng)總是崩潰
sudo make install //這個(gè)過程可能要數(shù)個(gè)小時(shí)
sudo gedit /etc/ld.so.conf.d/opencv.conf 添加/usr/local/lib sudo ldconfig //更新一下鏈接庫sudo gedit /etc/bash.bashrc PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH source /etc/bash.bashrc到此opencv就正式安裝完畢!
pkg-config --modversion opencv 查看版本
可以寫個(gè)代碼測(cè)試一下
建立一個(gè)test.cpp
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main(){Mat img=imread("1.jpg");imshow("test",img);waitKey(0);return 0;}建立一個(gè)CMakeLists.txt寫入
cmake_minimum_required(VERSION 2.8) project( test) find_package( OpenCV REQUIRED ) add_executable( test test.cpp ) target_link_libraries( test${OpenCV_LIBS} )在這個(gè)文件目錄下放一個(gè)名為1.jpg的圖片
cd 到這個(gè)文件夾
cmake .
make
./test
若輸出圖像則配置正確
##安裝Anaconda
https://www.continuum.io/downloads去官網(wǎng)下載對(duì)應(yīng)python版本的
嫌麻煩從我百度云下https://pan.baidu.com/s/1S2VZXl3SVn0mso0U2QSuBQ
##重頭戲caffe的安裝
git clone https://github.com/BVLC/caffe.git若是git速度太慢,就只能翻墻去下了,
可以參考https://blog.csdn.net/tianjiazhao/article/details/80841385
復(fù)制一份的原因是編譯 caffe 時(shí)需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 給出的配置文件例子,不能用來編譯 caffe。
sudo gedit Makefile.config按照自己的需求去更改makefile.config和makefile,不懂makefile的小伙伴就很傷啦。
首先cudnn前注釋去掉
USE_OPENCV注釋去掉
這個(gè)注釋也去掉
修改anaconda——python路徑
注意要將python2的路徑注釋掉。
然后makefile.config就修改完啦,接下來修改makefile文件
sudo make all -j8多線程編譯,報(bào)錯(cuò)就改為sudo make all
編譯的時(shí)候可能會(huì)出很多錯(cuò)誤,出錯(cuò)誤了去google一個(gè)個(gè)查找看看,不要一失敗就重裝系統(tǒng)!
成功之后sudo make runtest -j8
出現(xiàn)這個(gè)即為成功。
##然后編譯Python接口
sudo make pycaffe -j8
python
import caffe
報(bào)錯(cuò)1:python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 沒有那個(gè)文件或目錄
去下載numpy庫
報(bào)錯(cuò)2:File “<stadin>”, line 1, in ImportError: No module named caffe
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrcsource ~/.bashrc將caffe填入環(huán)境變量中
報(bào)錯(cuò)3:ImportError: No module named ‘google’ ·
conda install protobuf==3.2.0(為什么安裝3.2.0呢,因?yàn)楹秃竺鎡ensroflow的1.2.0相配不會(huì)出問題)報(bào)錯(cuò)4:/usr/lib/x86_64-linux-gnu/libboost_python.so:對(duì)‘PyUnicode_InternFromString’未定義的引用 collect2: error: ld returned 1 exit status Makefile:632: recipe for target ‘.build_release/examples/mnist/convert_mnist_data.bin’ failed
這時(shí)候去查查makefile.config的設(shè)置有沒有問題
出現(xiàn)下圖即為正確。
更新:2018.10
Anaconda python3.6.5
報(bào)錯(cuò):
/usr/bin/ld: 找不到 -lboost_python3
cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libboost_python-py35.so libboost_python3.so
報(bào)錯(cuò):
libcudart.so.8.0: cannot open shared object file: No such file or directory
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
報(bào)錯(cuò):
libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
sudo cp /home/tianjiazhao/anaconda3/lib/libpython3.6m.so.1.0 /usr/local/lib/libpython3.6m.so.1.0 && sudo ldconfig
報(bào)錯(cuò):
libcublas.so.8.0: cannot open shared object file: No such file or directory
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
報(bào)錯(cuò):
libcurand.so.8.0: cannot open shared object file: No such file or directory
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
報(bào)錯(cuò):
libcudnn.so.5: cannot open shared object file: No such file or directory
報(bào)錯(cuò):
warning! HDF5 library version mismatched error
The HDF5 header files used to compile this application do not match
Headers are 1.10.2, library is 1.8.16
首先卸載hdf5
conda uninstall hdf5
然后下載1.8.16版本即可
conda install hdf5=1.8.16
同時(shí)安裝tensorflow:
conda create -n tensorflow python=3.6source activate tensorflow pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.0-cp36-cp36m-linux_x86_64.whl注意:cuda8.0 cudnn5.0搭配tehsroflow1.2.0使用Pytorch安裝
①官網(wǎng)下載 torch-0.4.0-cp36-cp36m-linux_x86_64.whl
pip install torch-0.4.0-cp36-cp36m-linux_x86_64.whl
pip install torchvision
配置pycharm
報(bào)錯(cuò):ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory不知道為什么設(shè)置cuda環(huán)境變量一直不起作用。
解決方法:
pycharm菜單 Run->Edit Configurations
設(shè)置如下:
/**********************************************************************************/
錯(cuò)誤集錦:
2019-01-10 18:51:05.999013: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2019-01-10 18:51:05.999040: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2019-01-10 18:51:05.999048: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
處理方法:sudo rm -rf .nv/ (.nv為在home目錄下的隱藏文件)
總結(jié)
以上是生活随笔為你收集整理的Ubuntu16.04安装caffe教程(同时安装tensorflow与Pytorch)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【4.0】jdbcTemplate
- 下一篇: 子集生成 --二进制法