日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

我的NVIDIA开发者之旅——Caffe教程(2)[Jetson TK1]Caffe工具环境(Linux)搭建实例

發布時間:2023/12/10 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我的NVIDIA开发者之旅——Caffe教程(2)[Jetson TK1]Caffe工具环境(Linux)搭建实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

"我的NVIDIA開發者之旅” | 征文活動進行中.......

接上文:此篇主要為上一篇我的NVIDIA開發者之旅——Caffe教程(1)[Jetson TK1]Caffe工具環境(Linux)搭建-CSDN社區安裝過程中容易發生的一些問題和錯誤提出一些解決方案。

Ubuntu 16.04 下安裝配置caffe

這篇教程參考了caffe官方文檔,分成兩個版本,CPU版本和GPU版本,其實本質上只是配置不同罷了。

首先需要查看默認python(針對Python2與Python3并存的情況):

python --version

如果是python2.7,則以下請遵循python2.7的配置,如果是python3.5以上,則遵循python3.5的配置(最好使用python2.7,因為教程只在2.7環境下編譯通過,不保證3.5以上不會出現問題)。

初始配置:

sudo apt-get update sudo apt-get upgrade sudo apt-get install -y build-essential cmake git pkg-config sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler libatlas-base-dev libboost-all-dev libgflags-dev libgoogle-glog-dev liblmdb-dev #下載包管理器pip,如果有可以跳過 sudo apt-get install -y python-pip#如果默認python是Python2.7 sudo apt-get install -y python-dev sudo apt-get install -y python-numpy python-scipy#如果默認python是Python3.5及以上 sudo apt-get install -y python3-dev sudo apt-get install -y python3-numpy python3-scipy#如果opencv版本為2.4 sudo apt-get install -y libopencv-dev

安裝CUDA 8以及Cudnn(可選)

如果你的顯卡是英偉達(NVIDA)的,并且你想使用GPU版本的caffe,那么可以安裝Cuda Toolkit 8和CUDNN庫,詳情請見博主的另一篇文章。

在Ubuntu16.04上安裝opencv3.3

如果未安裝opencv則可以通過以下方式安裝opencv3.3(目前最新版)。

構建opencv 3.3

首先安裝依賴關系:

sudo apt-get install --assume-yes build-essential cmake git sudo apt-get install --assume-yes pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils vtk6 sudo apt-get install --assume-yes liblapacke-dev libopenblas-dev libgdal-dev checkinstall

然后從https://github.com/opencv/opencv/archive/3.3.0.zip下載OpenCV 3.3的最新源代碼,解壓以后進入解壓后的目錄(一般為opencv-3.3.0),執行:

mkdir build cd build/ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D FORCE_VTK=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D #如果是CUDA 8.0,則執行以下命令 CUDA_NVCC_FLAGS="-D_FORCE_INLINES" -D WITH_GDAL=ON -D WITH_XINE=ON -D BUILD_EXAMPLES=ON ..#如果是CUDA 9.0,則執行以下命令 CUDA_NVCC_FLAGS="-D_FORCE_INLINES --expt-relaxed-constexpr"#最后make make -j $(($(nproc) + 1))

注意:Java 9會導致編譯失敗。

安裝Opencv 3.3

使用make:

sudo make install sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig sudo apt-get update #以上完成以后重啟 reboot

測試opencv 3.3

進入opencv 3.3目錄,執行以下代碼:

cd samples/cpp g++ edge.cpp `pkg-config opencv --cflags --libs` -o test ./test

如圖s所示:

說明opencv安裝成功。修改gcc和g++版本 在編譯caffe之前,先要查看ubuntu下的gcc和g++默認版本,如果是5.0以下(比如4.8),則需要修改。查看: gcc -v g++ -v

如果都是5.0以下,則輸入以下命令:

sudo rm /usr/bin/gcc sudo rm /usr/bin/g++ sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc sudo ln -s /usr/bin/g++-5 /usr/bin/g++ sudo ldconfig

然后再次檢查gcc和g++版本:

gcc -v g++ -v

如果都是5.0以上則修改成功。

然后如果進行了修改,則再編輯/usr/local/cuda-8.0/targets/x86_64-linux/include/host_config.h文件,將119行的

error -- unsupported GNU version! gcc versions later than 5 are not supported!

注釋掉:

//#error -- unsupported GNU version! gcc versions later than 5 are not supported!

編譯caffe

從github上面clone caffe:

cd git clone https://github.com/BVLC/caffe.git

進入caffe目錄下,將Makefile.config.example復制到Makefile.config中:

cd caffe cp Makefile.config.example Makefile.config

當前路徑如圖所示:

下面分成兩個版本分別編譯caffe,請各位讀者根據需要選擇CPU或者GPU版本。

CPU版本

編輯Makefile.config:

vi Makefile.config

將配置文件里面的#CPU_ONLY:= 1改為CPU_ONLY:= 1,即取消注釋。

同理將# WITH_PYTHON_LAYER := 1修改為?WITH_PYTHON_LAYER:=1,#USE_OPENCV := 0修改成USE_OPENCV :=1,#USE_LEVELDB := 0修改為?USE_LEVELDB:=1,將#USE_LMDB := 0修改成?USE_LMDB :=1。

然后修改以下幾行(路徑根據自己的情況來定):

PYTHON_INCLUDE := /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include

WITH_PYTHON_LAYER := 1

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

如果opencv為3以上(本文為3.3),則將OPENCV_VERSION := 3取消注釋,然后修改下面一行(opencv中的3rdparty/lib路徑根據自己的情況來定):

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/share/OpenCV/3rdparty/lib/

然后進入Python目錄安裝依賴關系:

cd python #默認Python版本為Python2 for req in $(cat requirements.txt); do sudo -H pip2 install $req --upgrade; done

然后返回caffe目錄,修改Makefile.config:

cd .. vi Makefile.config

將這一行:

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

替換為:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

然后打開CMakeLists.txt,加入下面一行:

# ---[ Includes set(${CMAKE_CXX_FLAGS} "-D_FORCE_INLINES ${CMAKE_CXX_FLAGS}")

最后編譯caffe(在caffe目錄下):

mkdir build cd build cmake .. make all -j $(($(nproc) + 1)) make test -j $(($(nproc) + 1)) make runtest -j $(($(nproc) + 1)) make pycaffe -j $(($(nproc) + 1)) #看看是否在caffe目錄下,不是就切換到該目錄下再執行 make distribute -j $(($(nproc) + 1))

最后為了讓Python與Caffe一起工作,編輯文件~/.bashrc:

vi ~/.bashrc

在文件末尾加入這一行:

export PYTHONPATH=/path/to/caffe-master/python:$PYTHONPATH

最后為了使配置立即生效:

source ~/.bashrc

CPU版本至此編譯完成。

GPU版本

和CPU版本很像,只是有些許不同。編譯該版本前請保證已經安裝CUDA 8和Cudnn。

編輯Makefile.config:

vi Makefile.config

將配置文件里面的# USE_CUDNN := 1?修改成:?USE_CUDNN := 1,即取消注釋。

同理將# WITH_PYTHON_LAYER := 1修改為?WITH_PYTHON_LAYER:=1,#USE_OPENCV := 0修改成USE_OPENCV :=1,#USE_LEVELDB := 0修改為?USE_LEVELDB:=1,將#USE_LMDB := 0修改成?USE_LMDB :=1。

然后修改以下幾行(路徑根據自己的情況來定):

PYTHON_INCLUDE := /usr/include/python2.7 /usr/local/lib/python2.7/dist-packages/numpy/core/include

WITH_PYTHON_LAYER := 1

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

CUDA_DIR := /usr/local/cuda-8.0

如果opencv為3以上(本文為3.3),則將OPENCV_VERSION := 3取消注釋,然后修改下面一行(opencv中的3rdparty/lib路徑根據自己的情況來定):

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/share/OpenCV/3rdparty/lib/

然后進入Python目錄安裝依賴關系:

cd python #默認Python版本為Python2 for req in $(cat requirements.txt); do sudo -H pip2 install $req --upgrade; done

然后返回caffe目錄,修改Makefile.config:

cd .. vi Makefile.config

將這一行:

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

替換為:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

然后打開CMakeLists.txt,加入下面一行:

# ---[ Includes set(${CMAKE_CXX_FLAGS} "-D_FORCE_INLINES ${CMAKE_CXX_FLAGS}") 最后編譯caffe(在caffe目錄下): mkdir build cd build cmake .. make all -j $(($(nproc) + 1)) make test -j $(($(nproc) + 1)) make runtest -j $(($(nproc) + 1)) make pycaffe -j $(($(nproc) + 1)) #看看是否在caffe目錄下,不是就切換到該目錄下再執行 make distribute -j $(($(nproc) + 1))

最后為了讓Python與Caffe一起工作,編輯文件~/.bashrc:

vi ~/.bashrc

在文件末尾加入這一行:

export PYTHONPATH=/path/to/caffe-master/python:$PYTHONPATH

最后為了使配置立即生效:

source ~/.bashrc

至此GPU版本編譯成功。

測試caffe?mnist集

進入caffe目錄并測試:

cd ~/caffe ./data/mnist/get_mnist.sh ./examples/mnist/create_mnist.sh ./examples/mnist/train_lenet.sh

結果如下:

測試成功,至此,本教程結束。

?

總結

以上是生活随笔為你收集整理的我的NVIDIA开发者之旅——Caffe教程(2)[Jetson TK1]Caffe工具环境(Linux)搭建实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。