欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    ensorflow和Caffe是機器學習初學者常用的2種深度學習框架。相對于Tensorflow有簡單的python pip一鍵安裝包,Caffe的安裝更考驗開發者的計算機編譯水平,需要自己下載源碼編譯。盡管caffe的配置教程網上很多,但是網上caffe的各個分支版本也很多,所以初學者在編譯時總是會碰到各種奇怪的問題。本文會針對初學者常用的Windows* + Intel CPU的平臺上安裝配置Caffe做一個較為完整的總結。

    Caffe的各個版本簡介

    官方版本:伯克利BVLC(Berkeley Vision And Learning Center) 版

    https://github.com/BVLC/caffe

    這個是Caffe的主版本,由伯克利大學維護。其他所有的Caffe版本都是由這個版本分支出去的。這個版本Caffe可以編譯出Linux和Windows*版本,支持Nvidia的CUDA加速,但是對CPU的優化不好,而且有關安裝和配置的文檔很少。從這個版本編譯Caffe,需要很強的自我學習和解決問題能力。

    微軟的Windows*版本

    https://github.com/Microsoft/caffe

    微軟自己維護的一個版本。這個版本簡化了Caffe在Windows*下的步驟,自帶了一個VS的Solution項目。這個版本同樣支持基于CPU和CUDA的算法實現。

    Intel Caffe優化版

    https://github.com/intel/caffe

    Intel維護的版本,這個版本優化了Intel CPU的實現算法,同時提供對Intel Xeon CPU多核和多節點的支持。這個版本里有些算法庫對Windows*支持不太好,所以這個分支編譯出的Caffe主要還是運行在Linux的服務器平臺上做訓練工作。

    Intel clCaffe 核顯OpenCL優化版

    https://github.com/01org/caffe

    Intel維護的另一個版本,相對于官網BVLC Caffe上的OpenCL分支,優化了基于Intel 核顯GPU的OpenCL加速算法。這個版本同時支持Windows* 和Linux平臺,適合在有Intel核顯的CPU上做一些推理(Inference)場景的工作。

    BVLC caffe的編譯

    安裝編譯所需要的軟件

    • Visual Studio 2015
    • Anaconda + Python 64位版本 (Caffe官網推薦用Python 2.7或者3.5版本,如果用其他版本,編譯時候會麻煩一些,我系統上用的是Python3.6版本) https://www.anaconda.com
    • cmake-3.9.3-win64-x64 https://cmake.org/
    • Git-2.14.2-64-bit https://git-scm.com/

    配置Windows*的環境變量

    為了避免等會CMAKE生成編譯腳本的時候找不到一些依賴關系,有的沒的路徑都加一些,包括Cmake, Git, Ananconda以及Python的路徑。

    Checkout 官網Caffe的代碼

    運行以下代碼,用git從官網caffe上下載Windows*分支。

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

    修改caffe源碼代碼里的一些編譯參數

    • 修改scripts\build_win.cmd
    • 因為我們沒有定義APPVEYOR,所以直接拉到else(大約69行)以后。
    • 先從APPVEYOR部分把這部分內容拷貝過來
    if !PYTHON_VERSION! EQU 2 (
     set CONDA_ROOT=C:\Miniconda-x64
    )
    :: Set python 3.5 with conda as the default python
    if !PYTHON_VERSION! EQU 3 (
     set CONDA_ROOT=C:\Miniconda35-x64
    )
    set PATH=!CONDA_ROOT!;!CONDA_ROOT!\Scripts;!CONDA_ROOT!\Library\bin;!PATH!
    

    然后根據Windows*環境設置下圖中紅色方框的部分

    1. 編譯器是VS2015,設置MSVC_VERSION=14

    2. 不需要NINJA來編譯,設置WITH_NINJA=0

    3. 沒有NVDIA GPU,設置CPU_ONLY=1

    4. Python版本為3.X,設置PYTHON_VERSION=3

    5. 需要pyCaffe支持,設置BUILD_PYTHON=1

    • 如果Python版本不是2.7或3.5,修改
    • cmake\WindowsDownloadPrebuiltDependencies.cmake
    • Caffe在編譯時會自動從網上下載一個依賴庫caffe-builder,這個cmake文件負責根據你系統里的VS版本和python版本自動下載預編譯好的caffe-builder包。目前網上只有預編譯好的VS2013/2015配python2.7/3.5的caffe-builder,如果是python3.6,編譯時會報找不到VS2015配python3.6的caffe-builder包。解決方法有2個辦法,要么用python3.5的包,要么自己編譯caffe-builder。
    • 對于復用Python3.5的包,可以按照下圖中所示,復制DEPENDENCIES_URL_1900_35和DEPENDENCIES_SHA_1900_35 2行,同時修改35為36。

    如果希望使用自己編譯VS2015加python3.6的caffe-builder,除了要加入上段說到的2行修改外,還需要注釋掉下圖中WindowsDownloadPrebuiltDependencies.cmake的下圖所示的綠色部分,這部分代碼是負責從網上下載依賴包并且解壓縮到本地目錄的。同時要把caffe-builder編譯出的libraries目錄拷貝到C:\Users\[user name]\.caffe\dependencies這個目錄下。(具體caffe-builder的編譯,將在本文第3節詳細介紹)

    開始編譯

    在caffe的目錄下輸入scripts\build_win.cmd

    開始編譯,一切順利的話,大約10分鐘后就編譯好了

    驗證一下編譯的結果

    接下來運行一下caffe項目自帶的examples里的00-classification的代碼來驗證一下caffe是否能夠正常運行

    打開anaconda的命令行,進入caffe的examples目錄,運行jupyter notebook

    在打開的notebook中打開caffe自帶的例子 00-calssification.ipynb

    這是用一個訓練好的Caffe模型來預測動物圖片的例子,圖片默認是使用Caffe項目里examples\image\cat.jpg。

    一路Shift+Enter運行下去,看到第8步predicted輸出

    predicted class is: 281
    

    第9步輸出

    output label: n02123045 tabby, tabby cat
    

    預測結果是貓,說明caffe已經正確編譯而且能運行了。

    大功告成,開始你的Caffe學習之旅吧

    Caffe依賴庫Caffe Builder的編譯

    主要介紹怎么編譯Caffe-Builder項目

    安裝編譯所需要的軟件

    編譯軟件的需求同2.1部分

    • Visual Studio 2015
    • Anaconda + Python 64位版本 https://www.anaconda.com
    • cmake-3.9.3-win64-x64 https://cmake.org/
    • Git-2.14.2-64-bit https://git-scm.com/

    配置Windows*的環境變量

    環境變量的配置同2.2部分

    下載Caffe-Builder源碼

    Caffe-Builder的開源項目位于 https://github.com/willyd/caffe-builder

    目前最新的release為1.1版,可以從這里下載最新的release 1.1.0版的源碼

    https://github.com/willyd/caffe-builder/releases

    修改caffe-builder源碼代碼里的一些編譯參數

    修改主要基于2個方面:

    首先在Windows*下Ninja編譯系統不容易配置好,所以這里選擇了Visual Studio 2015作為編譯器。修改build_v140_x64.cmd,將紅色部分的’Ninja’改為’Visual Studio 14 2015 Win64’

    其次是這個Release 1.1.0發布有點時間了,caffe-builder很多依賴的開源項目都搬家或者版本更新了,需要做相應的修改。

    1) 修改packages\protobuf\CmakeLists.txt

    將圖中所示部分protobuf包的Hash值從原來的

    14a532a7538551d5def317bfca41dace

    修改為

    39d6a4fa549c0cce164aa3064b1492dc

    2) 修改packages\hdf5\CmakeLists.txt

    將圖中所示部分的URL從https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.16/src/CMkae-hdf5-1.8.16.zip 修改為 https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.16/src/CMkae-hdf5-1.8.16.zip

    編譯

    進到caffe-builder-1.1.0目錄下,運行build_v140_x64.cmd開始編譯

    屏幕輸出

    最終編譯生產的caffe依賴庫文件放在build\libraries目錄下,你可以將這個libraries目錄拷貝到caffe所需要的目錄下。

    小結

    主要介紹了官方BVLC Caffe在Windows*下的編譯設置過程。BVLC Caffe提供CPU和Nvidia GPU版本的實現,但是在實際學習工作中,初級開發者的電腦平臺通常不會裝備昂貴的Nvidia顯卡,而CPU版本的Caffe因為執行效率不高,只能用來做一些小型的”玩具”實驗項目。

    最近因工作原因需要編譯caffe框架,因此又重新撿起來搞一遍,結果發現編譯過程中有不少爛坑,發出來跟大伙共享一下。



    先說PC環境:

    ubuntu 18.04 LTS

    2080Ti x 4 + i9 10990

    OpenCV 4.2.0 (從源碼自行編譯)

    anaconda3 (可用可不用)

    caffe (github上最新版本)


    caffe編譯方式一:不使用anaconda3

    首先,關閉.bashrc中所有與anaconda有關的環境變量選項,不讓anaconda參與編譯,并把caffe源碼目錄下的Makefile.config.example改為Makefile.config,然后打開并編輯:


    改動不大,把cuda選項打開即可。 caffe編譯默認帶opencv,如果不是特殊需要,不用指定opencv的版本(此處我們用自己編譯安裝的4.2.0版本,而不是opencv3)。python用的是系統自帶的2.7版本,如果沒有安裝numpy的話,記著sudo apt install python-numpy。其它的一些依賴的庫都可以通過apt install 去安裝,比如glog,gflags,lmdb等等,此處略去不表。

    接下來執行cmake ../ 和 make -j,第一個編譯錯誤來了,cmake會報告說CUDA_cublas_device_LIBRARY 這個符號找不到。 明明cuda工作正常,別的訓練都能跑的妥妥的,為啥這里就不行? 答案來了,你的cmake版本太低。caffe官方推薦3.12及以上版本。


    https://github.com/BVLC/caffe/issues/6665

    此時你只能卸載然后從cmake官網下載所需要的版本。


    這個問題解決完后,繼續編譯,會遇到 CV_LOAD_IMAGE_COLOR 符號找不到的bug,這是因為opencv的版本導致的,caffe已經很久不更新了,當年它是配合著opencv3編寫的,opencv升級到4.x時代后,部分符號有變化,不過還好,要改的地方不多,涉及三個文件5處代碼:

    modified: src/caffe/layers/window_data_layer.cpp

    modified: src/caffe/test/test_io.cpp

    modified: src/caffe/util/io.cpp


    caffe編譯方式二:使用anaconda3

    首先,啟用anaconda,即在.bashrc中啟用相關環境變量。然后配置Makefile.config,跟上面一樣,打開cuda,然后配置python對應的參數:

    另外,需要注意的是,caffe目錄下還有一個CMakelist文件,注意,里面關于python版本的,默認是2,此處要改為3,因為我的anaconda里面,python版本是3.7。如果不改,編譯的時候,caffe還是會用老的那一套python2的環境變量。

    提醒,此處檢查一下protobuf的版本(protoc --version),caffe需要3.6.1版本的protobuf,否則一樣是報錯。


    此時,大的問題解決的差不多了,但是最后的鏈接階段,系統會提示libopencv_imgproc無法識別很多TIFF相關的函數。這個就有點奇怪了,我編譯opencv的時候是開了tiff=on的,檢查系統,系統也apt install過tiff,此時,你可以ldd一下報錯的那個opencv的庫文件,搜一下里面tiff:

    ldd /usr/local/lib/libopencv_imgcodecs.so.4.2.0 |grep tiff


    此處的tiff版本是5。然后再執行一下conda list | grep tiff,你會發現conda里用的是tiff 4.1,也就是說,編譯opencv4的時候,我們用了tiff5的庫文件,但是編譯caffe的時候,系統錯誤的把opencv的庫去鏈接了conda里的tiff4.1的動態庫,因版本不同,因此會有接口函數找不到。

    處理方式也比較簡單粗暴,直接卸載conda里的tiff即可。


    至此,caffe的編譯算是告一段落。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有