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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

AM5728开发深度学习之安装 caffe-jacinto

發布時間:2023/12/20 pytorch 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AM5728开发深度学习之安装 caffe-jacinto 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AM5728開發深度學習之安裝 caffe-jacinto——WizNote筆記

要先使用自己訓練的模型,可以使用caffe和Tensorflow,但是使用TI的caffe-jacinto能讓訓練的模型在TI的嵌入式平臺上達到加速的效果,它fork了NVIDIA/caffe,而NVIDIA/caffe則是fork了BLVC/caffe。經過測試,安裝了caffe-jacinto,也能跑通caffe給的官方教程代碼Notebook Examples。
官方Repo
官方問題總結及解決方法
本機環境如下:

  • CUDA 9.0
  • cuDNN 7.2.1
  • OpenCV 3.1

由于電腦裝了Anaconda3,因此我們分配一個虛擬環境caffe-jacinto來安裝caffe-jacinto需要的包,這里指定python版本為2.7,因為caffe-jacinto對python2.7支持較好。

conda create -n caffe-jacinto python=2.7 source activate caffe-jacinto

1 下載caffe-jacinto庫

git clone https://github.com/tidsp/caffe-jacinto cd caffe-jacinto/ git checkout caffe-0.17

配置環境變量

vim ~/.bashrc # 將下面兩行添加到~/.bashrc中 export PATH=/home/xavier/anaconda3/envs/caffe-jacinto/bin:$PATH export PYTHONPATH=/media/xavier/SSD256/caffe-jacinto/python:$PYTHONPATH source ~/.bashrc

2 編輯Makefile.config

取消注釋行WITH_PYTHON_LAYER
取消注釋行USE_CUDNN

cp Makefile.config.example Makefile.config # 取消注釋行WITH_PYTHON_LAYER # 取消注釋行USE_CUDNN USE_CUDNN := 1 #使用OpenCV OPENCV_VERSION := 3 #OpenCV版本為3

3 安裝依賴

cd caffe-jacinto/ source activate caffe-jacinto sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install libatlas-base-dev sudo apt-get install libopenblas-dev sudo apt-get install --no-install-recommends libboost-all-dev #沒安裝的話會出現boost庫的相關錯誤 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev sudo apt-get install libturbojpeg sudo ln -s /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0.0.0 /usr/lib/x86_64-linux-gnu/libturbojpeg.so # 否則會出現libturbojpeg相關的錯誤 # 安裝pycaffe需要的依賴包 for req in $(cat python/requirements.txt); do pip install $req; done

4 安裝CUDA

5 安裝cuDNN

以上兩步網上教程很多,這里就偷懶省略了,本機電腦裝的CUDA為9.0,cuDNN為7.2.1,可以通過以下命令查看

# cuda 版本 cat /usr/local/cuda/version.txt # cudnn 版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 # OpenCV版本 pkg-config --modversion opencv

6 編譯caffe-jacinto

# 注意這里的~/caffe-jacinto/python/requirements.txt根據具體的caffe-jacinto安裝目錄而定 for req in $(cat ~/caffe-jacinto/python/requirements.txt); do pip install $req; done make all -j 8 #使用8個線程進行編譯

7 測試caffe-jacinto

make test make runtest make pycaffe

常見錯誤及解決辦法

1 .build_release/src/caffe/proto/caffe.pb.h:22:35: fatal error: google/protobuf/arena.h: 沒有那個文件或目錄或者.build_release/src/caffe/proto/caffe.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is #error This file was generated by a newer version of protoc which is錯誤

[具體解決方法及描述](https://blog.csdn.net/qq_28256625/article/details/78893707)
這是由于protobuf的版本不對導致的,caffe能正確使用的是protobuf-2.6.1版本,而安裝anaconda后環境變量改變,默認使用anaconda下的protobuf-3.4.0了。

# 命令whereis protoc 可以查看哪些路徑安裝了protoc # 命令which protoc可以查看默認選用protoc的路徑 # 命令protoc --version 可以查看當前protoc版本


我們想使用Anaconda,但是Anaconda的protoc的版本太高,我們可以使用以下命令安裝protobuf-2.6.1

# 查看conda哪些源支持protobuf及相關版本 binstar search -t conda protobuf

假設使用protobuf-2.6.1,用下面命令鎖定protobuf版本

binstar show probcomp/libprotobuf

然后使用下面命令安裝

conda install --channel https://conda.anaconda.org/probcomp libprotobuf

再次查看哪些路徑有protoc,可以看到路徑/home/xavier/anaconda3/envs/caffe-jacinto/bin/protoc有protoc,并且可以查看到其版本為protobuf-2.6.1

whereis protoc


通過修改~/.bashrc來將/home/xavier/anaconda3/envs/caffe-jacinto/bin/添加到環境變量

export PATH=/home/xavier/anaconda3/envs/caffe-jacinto/bin:$PATH

然后make all -j 8即可編譯

2 由于沒有使用OpenCV造成的錯誤

.build_release/lib/libcaffe-nv.so:對‘cv::VideoCapture::set(int, double)’未定義的引用 .build_release/lib/libcaffe-nv.so:對‘cv::VideoWriter::write(cv::Mat const&)’未定義的引用 .build_release/lib/libcaffe-nv.so:對‘cv::VideoCapture::open(cv::String const&)’未定義的引用 .build_release/lib/libcaffe-nv.so:對‘cv::VideoCapture::release()’未定義的引用

解決方法
由于我自己電腦之前源碼編譯過OpenCV3.4,這里只需要清除剛剛編譯生成的文件make clean,修改Makefile.config中以下兩行,然后重新編譯即可。

USE_CUDNN := 1 OPENCV_VERSION := 3

3 /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libturbojpeg.a(libturbojpeg_la-turbojpeg.o): relocation R_X86_64_32 against `.data’ can not be used when making a shared object; recompile with -fPIC /usr/lib/x86_64-linux-gnu/libturbojpeg.a: 無法添加符號: 錯誤的值

解決方法

cd <caffe-jacinto ROOT> make clean source activate caffe-jacinto sudo ln -s /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0.1.0 /usr/lib/x86_64-linux-gnu/libturbojpeg.so

4 執行make runtest時出現錯誤


這個錯誤的原因不清楚,目前沒有找到解決方法,但是這個錯誤不影響后面的操作,如果有大佬知道怎么解決,煩請在評論中給出方法。

5 OpenCV版本太高,需要轉換為OpenCV3.1

5.1 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)
查看解決方法

6 運行完make pycaffe后,import caffe出現ImportError: /home/user/caffe-master/python/caffe/…/…/build/lib/libcaffe.so.1.0.0-rc3:undefinedsymbol:_ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS_11_InputArra ERSt6vectorIhSaIhEERKSB_IiSaIiEE

這是由于使用Anaconda3造成的,我們現在使用系統自帶的python2來重新安裝caffe-jacinto

6.1 切換系統root用戶的Python
sudo update-alternatives --config python

然后輸入對應的python2.7版本即可。

6.2 使用conda remove -n caffe-jacinto --all刪除Anaconda創建的caffe-jacinto虛擬環境。
6.3 再安裝pycaffe需要的依賴包
for req in $(cat python/requirements.txt); do pip2 install $req; done

注意:這里的pip改為pip2了,表示重新安裝系統python2所需的pycaffe依賴包

6.4 執行make all -j8和make pycafffe即可
6.5 測試import caffe

7 ImportError: No module named skimage

這個簡單,參考博客

8 成功import caffe后,執行代碼caffe.set_mode_gpu()出錯Check failed: error == cudaSuccess (30 vs. 0) unknown error

解決辦法:使用sudo python而不是python

總結

以上是生活随笔為你收集整理的AM5728开发深度学习之安装 caffe-jacinto的全部內容,希望文章能夠幫你解決所遇到的問題。

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