1. 程式人生 > >caffe安裝(2)python3.5+opencv3.1+caffe

caffe安裝(2)python3.5+opencv3.1+caffe

1. OpenCV3

opencv3 與cuda8不相容,不啟動支援cuda
真的是歷經千辛啊

  • 安裝依賴庫
sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev  

sudo apt-get install python-dev python-openCV python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-
22-dev
  • build
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

cmake成功後,會出現如下結果,提示配置和生成成功:
– Configuring done
– Generating done
由於CUDA 8.0不支援OpenCV的 GraphCut 演算法,可能出現以下錯誤:

~/opencv3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: 'NppiGraphcutState'
has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat ^ /home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:135:18: error: 'NppiGraphcutState' does not name a type operator NppiGraphcutState*() ^

這裡寫圖片描述

【解決辦法】進入opencv-3.1.0/modules/cudalegacy/src/目錄,修改graphcuts.cpp檔案,將:

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改為

#include "precomp.hpp"
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

然後make編譯就可以了

make -j8
sudo make install

2. Caffe

2.0 下載

2.1 Others dependencies

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 libatlas-base-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.2 python

sudo apt-get install python3-dev python3-pip ipython3

在 caffe-master/python,如果是python2執行

for req in $(cat requirements.txt); do sudo pip
install $req; done

如果是python3,則把pip改為pip3

for req in $(cat requirements.txt); do pip3 install $req; done

2.3 make

  1. 修改
    Makefile.config, 主要為:
    • 去註釋: CuDNN, USE_OPENCV,OPENCV_VERSION := 3, 允許python3的include,lib
    • 新增hdf5的include,lib

下面是我用 diff Makefile.config Makefile.config.example 比較出來的結果

<  USE_CUDNN := 1
---
> # USE_CUDNN := 1
11c11
<  USE_OPENCV := 1
---
> # USE_OPENCV := 0
21c21
<  OPENCV_VERSION := 3
---
> # OPENCV_VERSION := 3
69c69
<  PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
---
> # PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
74,76c74,76
<  PYTHON_LIBRARIES := boost_python3 python3.5m
<  PYTHON_INCLUDE := /usr/include/python3.5m \
<                  /usr/lib/python3.5/dist-packages/numpy/core/include
---
> # PYTHON_LIBRARIES := boost_python3 python3.5m
> # PYTHON_INCLUDE := /usr/include/python3.5m \
> #                 /usr/lib/python3.5/dist-packages/numpy/core/include
90,91c90,91
< 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
---
> INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
> LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
---
  1. make
make all -j8
make test -j8
make runtest -j8

runtest可能會遇到錯誤
libcudart.so.6.5: 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

sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig

sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig

sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig
  1. make pycaffe
make pycaffe

如果遇到錯誤 /usr/bin/ld: cannot find -lboost_python3

執行

cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libboost_python-py35.so libboost_python3.so

python3.5的datautil/rrule.py裡的raiseError有語法錯誤,要自己手動修改,把raiseError後面的語句用括號括起來

設定python caffe的路徑

cd caffe-master/python
pwd

sudo gedit ~/.bashrc
新增
export PYTHONPATH=/home/chuny/caffe-master/python:$PYTHONPATH
儲存後
source ~/.bashrc

【注意】
編譯一次caffe,只能支援python2或python3
安裝python的時候,用sudo pip install是安裝在根目錄下,直接用pip安裝的是在當前使用者的home裡面,其他使用者用不了

安裝caffe的時候
make all
make test
make runtest出現這樣的問題
這裡寫圖片描述
發現sudo make runtest就沒有問題
而且python

import caffe
caffe.set_mode_gpu() 也報錯 unable to create cublas handle
改為 sudo python
import caffe
caffe.set_mode_gpu()就沒問題
所以我全部重灌,加sudo
make clean
sudo make all -j12
sudo make test -j12
sudo make runtest -j12
sudo make pycaffe -j12

相關推薦

caffe安裝2python3.5+opencv3.1+caffe

1. OpenCV3 opencv3 與cuda8不相容,不啟動支援cuda 真的是歷經千辛啊 安裝依賴庫 sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-de

【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝2

                 Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(2)   原文參考:https://www.cnblogs.com/

2Python3筆記 數據類型之"組"(序列) 與 集合

屬於 name col set 集合 列表 註意 ack 符號   一、 list [ 列表 ] ---- 任意數據類型的有序排列     1. list 操作類似 str操作 (參考上一節字符串操作)       [1,2,3,4]       [1,2,‘a‘, Tru

Python刷題筆記2- 取5位大數字

In the following 6 digit number: 283910 91 is the greatest sequence of 2 digits. Complete the solution so that it returns the largest five digit number fo

CentOS 6.5/6.6 安裝installmysql 5.7 最完整版教程

轉自:https://segmentfault.com/a/1190000003049498 Step1: 檢測系統是否自帶安裝mysql # yum list installed | grep mysql Step2: 刪除系統自帶的mysql及其依賴 命令: #

第02章-VTK安裝2

本部落格所有文章均為原創,歡迎交流和轉載;轉載請註明出處,謝謝! 博主從事影象、圖形演算法研究及應用開發多年,一路走來,深知各種開源框架、演算法的學習門檻是多麼讓人沮喪,所以在本部落格中將向大家分享一些學習經驗。目前著重於ITK(Insight Segmentation and Reg

DSPF28335學習之2CCS5.5新建工程、編譯除錯及燒寫至FLASH

目錄 (1)準備 A.編譯 B.除錯 準備:1.CCS5.5;2.F28335核心板;3.XDS100V3模擬器 1.程式燒寫至RAM         在程式除錯階段,程式燒寫至RAM,配合模擬器對程式進行除錯。

HighCharts2座標軸5部分

先看一張圖,有個預先認知: 1、座標軸標題 沒什麼好說的,就不在這兒浪費時間了,自己看看文件OK的。 2、座標軸刻度標籤 Labels常用屬性有enabled、formatter、step、staggerLines 2.1)enabled 是否啟

2ASP.NET Core3.1 Ocelot路由

1.路由 前一個章節我們已經介紹過Ocelot,相信大家也瞭解到,Ocelot的主要功能是接收客戶端等傳入的HTTP請求,並將其轉發到下游服務。Ocelot當前僅以另一個http請求的形式支援此功能(將來可能是任何傳輸機制)。Ocelot將一個請求路由到另一個請求。為了讓Ocelot正常工作,您需要在配置中設

【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝1

              Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(1)   1. Anacond的介紹    Anaconda指的是一個

【機器學習】Windows +Anaconda3(python3.5)+opencv3.4.1 安裝4

           Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(4)    想解決import cv2問題 ,於是在網上找了一些方法,但是許多是不可行的,後來發現一

Windows +Anaconda3(python3.5)+opencv3.4.1 安裝1

       Windows +Anaconda3(python3.5)+opencv3.4.1 安裝(3)  想解決import cv2問題 ,於是在網上找了一些方法,但是許多是無效的,後來發現一種方法可行的,分享給大家。  1.其他方法:    1. 因為之前在

Ubuntu14.04上深度學習Caffe安裝指南CUDA7.5 + opencv3.1

Ubuntu14.04上Caffe安裝指南 安裝的準備工作 首先,安裝官方版Caffe時,如果要使用Cuda,需要確認自己確實有NVIDIA GPU。 安裝Ubuntu時,將/boot 分割槽分大概200M左右,太小了會導致升級系統時/boot空間不足

雜七雜八2:簡單的加聖誕帽的程式,python3+opencv3.4

簡單的加聖誕帽的程式,python3+opencv3.4 最最最最簡單的加聖誕帽的程式,python3+opencv3.4 # -*- coding: utf-8 -*- """ Created on Mon Dec 25 15:22:14 2017 @author: Ela

tensorflow GPU版安裝win10系統,anaconda3.4.2python3.5, GTX1050,CUDA9.0

tensorflow GPU版安裝(win10系統,anaconda3.4.2,python3.5, CUDA9.0.176_win10,cudnn-9.0-windows10-x64-v7,GTX1050 Ti) 安裝完anaconda,配置環境: 系統變數中的pa

windows系統用anaconda配置安裝TensorFlow 2017.4.13tensorflow支援python3.5版本 1.開啟anaconda依次輸入: 1 conda con

(2017.6.09)tensorflow支援python3.5版本  1.開啟anaconda依次輸入: 1 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

《崔慶才Python3網路爬蟲開發實戰教程》學習筆記2:常用庫函式的安裝與配置

python的一大優勢就是庫函式極其豐富,網路爬蟲工具的開發使用也是藉助於這一優勢來完成的。那麼要想用Python3做網路爬蟲的開發需要那些庫函式的支援呢? 與網路爬蟲開發相關的庫大約有6種,分別為: 請求庫:requests,selenium,ChromeDrive

elasticsearch入門指南elasticsearch-5.5.2安裝、配置和啟動

一,安裝JDK    略二,安裝elasticsearch1,下載安裝包官網下載地址:https://www.elastic.co/cn/downloads/elasticsearch,本文centos作業系統下安裝elasticsearch的tar包為例,講述安裝過程2,新

2HomeAssistant安裝--python3和pip

導航連結   HomeAssistant安裝--homeassistant介紹 HomeAssistant安裝--python3和pip HomeAssistant安裝--python3和pip分支 HomeAssistant安裝--homeassistant &n

python3.5+pymysql學習資料庫2

經過上一篇的努力,環境終於準備好了,現在可以開始學習sql語句對資料庫進行操作。 對資料庫進行增刪改之後,需要執行 cnn.commit() 查詢資料庫的內容後,可以用cursor.fetchall()和cursor.fetchone()獲取查詢結果,前者是獲取所有結果,後者只獲取