當前位置:首頁 » 編程軟體 » 編譯好的caffe

編譯好的caffe

發布時間: 2024-01-31 05:01:21

A. caffe windows10 vs2013怎麼配置

1.配置環境
我在自己的筆記本配置的caffe,配置的環境為:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假設在配置caffe之前,你已經准備好這些。
本文中將給出一些編譯好的依賴庫,如果你也是用的Windows 7 64位+VS2013,可以直接使用。
2.准備依賴庫
在Windows下配置caffe,一個很主要的問題就是依賴庫的編譯。不像在Ubuntu下那麼方便,在Windows下,依賴庫都需要使用vs2013進行編譯才能使用。下面我將介紹caffe需要的依賴庫(如果你也是win7 64位+VS2013,可以直接使用我提供的依賴庫)。
2.1 boost
boost可以下載源碼進行編譯,也可以直接下載安裝文件。我使用的是後者,方便、快捷。
我使用的是:boost_1.56_0-msvc-12.0-64.exe
注意下載適合你的配置環境的boost版本即可。
下載完畢,雙擊運行安裝文件即可。
2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas
這一部分的很多都是谷歌的開源庫,不容易下載(你懂的)。所以我使用的是Neil Z. SHAO『s Blog
提供的編譯好的。
下載完,解壓得到3rdparty文件夾。在下一段將會用到。
3.建立caffe工程
准備好了caffe需要的依賴庫和環境之後,下面就可以建立caffe的vs項目,進行編譯了。
3.1 下載caffe源碼
可以從caffe的github主頁下載源碼。
下載地址:Caffe』s GitHub
解壓文件,假設caffe源碼所在目錄為CAFFE_ROOT。
3.2 准備項目需要的依賴庫和系統環境變數
經過上一階段的准備,caffe項目所需的依賴庫都已經准備好。
1.首先設置系統環境變數(以我的為例):
CUDA_PATH_V6_5 安裝好cuda6.5之後,會自動添加環境變數CUDA_PATH_V6_5
OPENCV_2_49 D:/Tools/opencv2.49/build/
BOOST_1_56 D:/Tools/boost_1_56_0
2.將3rdparty文件夾放到CAFFE_ROOT
3.3 用vs建立caffe項目
1.用VS2013在CAFFE_ROOT下建立 win32 console application,選擇空項目。
將項目的平台由32位改為64位
2.修改項目屬性
項目——屬性——C/C++——常規——附加包含目錄
添加:
../include;
../src;
../3rdparty/include;
../3rdparty;
../3rdparty/include;
../3rdparty/include/openblas;
../3rdparty/include/hdf5;
../3rdparty/include/lmdb;
../3rdparty/include/leveldb;
../3rdparty/include/gflag;
../3rdparty/include/glog;
../3rdparty/include/google/protobuf;
項目——屬相——VC++目錄——包含目錄
添加:
$(CUDA_PATH_V6_5)\include;
$(OPENCV_2_49)\include;
$(OPENCV_2_49)\include\opencv;
$(OPENCV_2_49)\include\opencv2;
$(BOOST_1_56)
項目——屬性——鏈接器——常規——附加庫目錄
添加:
$(CUDA_PATH_V6_5)\lib\$(PlatformName);
$(OPENCV_2_49)\x64\vc12\lib;
$(BOOST_1_56)\lib64-msvc-12.0;
..\3rdparty\lib;
項目——屬性——鏈接器——輸入——附加依賴項
debug添加:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflagsd.lib
libglog.lib
libopenblas.dll.a
libprotobufd.lib
libprotoc.lib
leveldbd.lib
lmdbd.lib
libhdf5_D.lib
libhdf5_hl_D.lib
Shlwapi.lib
gflags.lib
libprotobuf.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
release添加:
opencv_ml249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflags.lib
libglog.lib
libopenblas.dll.a
libprotobuf.lib
libprotoc.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
Shlwapi.lib
3.4 編譯caffe
配置好caffe項目的屬性之後,下面就可以一步一步的編譯caffe了。
3.4.1 編譯./src中的文件
首先,將../src文件夾中的*.cpp文件添加到工程中。

依次編譯每一個*.cpp文件。
1.編譯blob.cpp
直接編譯時會報錯,缺少文件」caffe\proto\caffe.pb.h」
這個時候需要將proto.exe放到../3rdparty/bin文件夾
將GernaratePB.bat放在../scripts文件夾

運行bat腳本文件即可生成caffe.pb.h
然後就可以成功編譯。
2.編譯common.cpp
直接編譯這個文件,會出現關於getid和fopen_s的錯誤。可通過如下步驟修改:
在代碼前面添加:#include <process.h>
修改項目屬性:項目——屬性——C/C++——預處理器——預處理器定義
添加:_CRT_SECURE_NO_WARNINGS
在代碼中getid的位置進行如下修改:
#ifdef _MSC_VER
pid = getid();
#else
pid = _getid();
#endf
修改完畢之後,可以成功編譯。
3.編譯net.cpp
直接編譯這個文件,會出現關於mkstep、close、mkdtemp的錯誤。需要進行如下修改:
在io.hpp頭文件中添加:#include 「mkstep.h」
在io.hpp頭文件中,在close()的位置進行如下修改:
#ifdef _MSC_VER
close(fd);
#else
_close(fd);
#endif
在mkdtemp的位置進行如下修改:
#ifndef _MSC_VER
char* mkdtemp_result = mkdtemp(temp_dirname_cstr);
#else
errno_t mkdtemp_result = _mktemp_s(temp_dirname_cstr, sizeof(temp_dirname_cstr));
#endif
修改完畢,可以成功編譯。
4.編譯solver.cpp
直接編譯會出現關於snprintf的錯誤,需要進行如下修改:
#ifdef _MSC_VER
#define snprinf sprintf_s
#endif
修改完畢,可以成功編譯。
5.其他剩餘的cpp文件也依次編譯
3.4.2 編譯./src/layers中的文件
將./src/layers中的所有的cpp和cu文件都添加到項目中。

右鍵點擊cu文件,修改屬性。

在bnll_layer.cu文件,進行如下修改:
float kBNLL_THRESHOLD = 50 ——> #define kBNLL_THRESHOLD 50.0
依次編譯所有的文件。
3.4.3 編譯./src/util中的文件
將./src/util中所有的文件添加到項目

1.在io.cpp中
修改ReadProtoFromBinaryFile函數
O_RDONLY ——> O_RDONLY | O_BINARY
在代碼中進行如下修改:
#ifdef _MSC_VER
#define open _open
#endif
將close()改為_close()
2.在math_functions.cpp中
做如下修改:
#define __builtin_popcount __popcnt
#define __builtin_popcountl __popcnt
3.在db.cpp中
作如下修改:
#ifdef _MSC_VER
#include <direct.h>
#endif
修改CHECK_EQ
#ifdef _MSC_VER
CHECK_EQ(_mkdir(source.c_str()),0)<<」mkdir」<<source<<」failed」;
#else
CHECK_EQ(mkdir(source.c_str(),0744),0)<<」mkidr」<<source<<」failed」;
#endif
4.依次編譯其他文件
3.4.4 編譯./src/proto中的文件
參照上一步,將proto中的文件都添加到項目。
修改屬性:
項目——屬性——C/C++——預處理器——預處理器定義
添加:_SCL_SECURE_NO_WARNINGS
編譯所有文件。
3.4.5 編譯./tools中的文件
本文件夾下有多個cpp文件,通過它們的名字就可以知道相應的功能。添加不同的cpp文件到項目中,然後生成項目,就可以得到不同功能的exe文件。
將caffe.cpp添加到工程,生成項目,得到caffe.exe文件,可用於訓練模型
將computer_image_mean.cpp添加到工程,生成項目,得到的exe文件可用於將訓練樣本轉換為caffe使用的leveldb/lmdb數據集。
依次類推。
自此,caffe在Windows下的編譯已經完畢,接下來就可以使用它來訓練自己的模型了。

B. 編譯caffe出現問題

在程序開發的過程中,調試是一個不可缺少的重要環節。「三分編程七分調試」,說明程序調試的工作量要比編程大得多。C程序的錯誤可以分為兩種:語法錯誤和邏輯錯誤
(1)語法錯誤,這是C語言初學者出現最多的錯誤,比如,分號「;」是每個C語句的結束的標志,在C語句後忘記寫「;」就是語法錯誤,發生語法錯誤的程序,編譯通不過,用戶可以軟體的提示信息來修改。
(2)邏輯錯誤 就是用戶編寫的程序已經沒有語法錯誤,可以運行,但得不到所期望的結果(或正確的結果),也就是說由於程序設計者原因程序並沒有按照程序設計者的思路來運行。比如一個最簡單例子是:我的目的是求兩個數的和的,應該寫成 z=x+y; 由於某種原因卻寫成了 z=x-y; 這就是邏輯錯誤。
發生邏輯錯誤的程序編譯軟體是發現不了,要用戶跟蹤程序的運行過程才能發現程序中邏輯錯誤,這是最不容易修改的。比如軟體的BUG就是邏輯錯誤,發行補丁程序就是修改邏輯錯誤(用戶最常見就是Windows操作系統經常發布補丁程序)

C. win7配置caffe,import caffe時提示No mole named caffe

這種情況一般是沒有把caffe中的和python相關的內容的路徑添加到python的編譯路徑中。

D. 如何在Windows下安裝配置python介面的caffe

整了一晚上加一上午。網上關於python的記錄較少,這里寫一下。
這里的環境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013
使用的是GPU,我的GPU是titan16G+內存32G
首先是caffe的文件以及第三方庫的編譯,這里提供一個已經編譯好的的連接,我就是從那裡下好然後編譯完畢的。
點擊打開鏈接 happynear的
然後就是如何編譯python介面。
1、首先先生成兩個python文件,在src/caffe/proto/extract_proto.bat 里生成caffe_pb2.py 這個之後有用。
2、然後打開已經給好的caffe/buildVS2013,打開裡面已經有的工程文件,正常的情況下應該是有7個工程,選中pycaffee單獨作為要編譯的項目。如圖所示:

把pycaffe作為單啟動。注意需要在release x64位下編譯。
如果沒有這個的話,就將這個文件夾里python文件夾中的項目加入即可。如果沒有python項目,就自己建一個,將python文件夾里的cpp文件加入就可以了。
3、選擇pycaffe的屬性,將配置屬性下的VC++目錄中的包含目錄和庫目錄填上你python所在的include和libs 再在C/C++的目錄下的附加包含目錄一項中添加
以我的python為例。D:/python27/Lib;D:/python/include/ 以及D:/Python27/Lib/site-packages/numpy/core/include 如果你安裝了CUDNN這里可以在預處理器那裡把USE_CUDNN加上,同時在LINKER的輸入目錄下的附加依賴庫中加入cudnn的lib文件。

3、開始編譯即可。這里要注意一定要和caffe、caffelib在一個項目里編譯,否則會報錯。
4、編譯成功後會在caffe/python/caffe下生成_caffe.pyd 是打不開的
5、配置python環境:需要幾個額外庫
Cython>=0.19.2
numpy>=1.7.1
scipy>=0.13.2
scikit-image>=0.9.3
matplotlib>=1.3.1
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0
其中numpy要裝MKL版本的,不然scipy裝上了BLAS不能用
leveldb沒有windows版本的,不過我找到了可以使用的辦法。見這個博客:
點擊打開鏈接
如果有pip install 裝不上的,可以上這個網站找 wheel文件安裝就可以了
點擊打開鏈接
6、最後把目錄中python下的caffe文件夾復制到python27/Lib/site-packages就可以了。
測試的時候只需要在控制台下輸入import caffe 看能載入就知道成功了:)

E. python 語言文字相關的機器學習庫有哪些

(一)Caffe
Caffe是一個清晰而高效的深度學習框架,也是一個被廣泛使用的開源深度學習框架,在Tensorflow出現之前一直是深度學習領域Github star最多的項目。
Caffe的主要優勢為:容易上手,網路結構都是以配置文件形式定義,不需要用代碼設計網路。訓練速度快,組件模塊化,可以方便拓展到新的模型和學習任務上。但是Caffe最開始設計時的目標只針對於圖像,沒有考慮文本、語音或者時間序列的數據,因此Caffe對卷積神經網路的支持非常好,但是對於時間序列RNN,LSTM等支持的不是特別充分。caffe工程的models文件夾中常用的網路模型比較多,比如Lenet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。

(二) Tensorflow
1、概念介紹
TensorFlow是一個使用數據流圖進行數值計算的開源軟體庫。圖中的節點表示數學運算,而圖邊表示在它們之間傳遞的多維數據陣列(又稱張量)。靈活的體系結構允許你使用單個API將計算部署到桌面、伺服器或移動設備中的一個或多個CPU或GPU。

(三) Keras
1、概念介紹
Keras由純Python編寫而成並基於Tensorflow、Theano以及CNTK後端,相當於Tensorflow、Theano、 CNTK的上層介面,號稱10行代碼搭建神經網路,具有操作簡單、上手容易、文檔資料豐富、環境配置容易等優點,簡化了神經網路構建代碼編寫的難度。目前封裝有全連接網路、卷積神經網路、RNN和LSTM等演算法
Keras有兩種類型的模型,序貫模型(Sequential)和函數式模型(Model),函數式模型應用更為廣泛,序貫模型是函數式模型的一種特殊情況。
1) 序貫模型(Sequential):單輸入單輸出,一條路通到底,層與層之間只有相鄰關系,沒有跨層連接。這種模型編譯速度快,操作也比較簡單
2) 函數式模型(Model):多輸入多輸出,層與層之間任意連接。這種模型編譯速度慢。

熱點內容
phpimplode 發布:2024-11-16 11:27:20 瀏覽:561
端游網易版我的世界決戰斗羅伺服器 發布:2024-11-16 11:14:37 瀏覽:20
byte類型c語言 發布:2024-11-16 11:07:28 瀏覽:577
androidview設置高度 發布:2024-11-16 10:52:26 瀏覽:488
cryptopythondes 發布:2024-11-16 10:52:15 瀏覽:877
多台電腦如何創建存儲伺服器 發布:2024-11-16 10:44:44 瀏覽:340
移動雲伺服器下載 發布:2024-11-16 10:37:23 瀏覽:857
融媒體中心建設專題片拍攝腳本 發布:2024-11-16 10:37:22 瀏覽:934
域控制伺服器怎麼管理vlan 發布:2024-11-16 10:06:49 瀏覽:28
jquery圖片壓縮上傳 發布:2024-11-16 09:54:50 瀏覽:603