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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

win7+vs2015/13+caffe+matlab+python(CPU only)配置

發布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win7+vs2015/13+caffe+matlab+python(CPU only)配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先聲明本教程可以適用于vs2015 和vs2013 .以vs2015為例。

安裝必備軟件

  • vs 2015 /vs2013
  • matlab 2016a(64bit)
  • 推薦使用Anaconda 2.7 或者Miniconda 2.7這兩個Python發布版本
  • cmake 3.8.0 以上
  • caffe-window: https://github.com/BVLC/caffe/tree/windows

可選軟件:

  • everything :搜索本地文件
  • Rapid Environment Editor:快速編輯環境變量

下面我們介紹整個安裝流程:


  • 安裝python 必要的包
    我們這里安裝的是anaconda,可以使用conda 來安裝,但是實際上安裝很慢,為此可以設置國內的源。具體方法如下:Anaconda修改國內鏡像源
    然后可以安裝如下包:
  • > conda install --yes numpy scipy matplotlib scikit-image pip six> conda install --yes --channel willyd protobuf==3.1.0

    2.確認vs,matlab,python,cmake都加入環境變量。


    3.編輯build_win
    打開caffe-windows/scripts/build_win.cmd,編輯修改如下處:

    同時修改conda的位置:


    4.運行build_win.cmd。
    cmd進入到caffe-windows\scripts目錄下,運行build_win.cmd。

    該命令會在caffe-windows\scripts\目錄下創建一個build文件夾,并且會將額外的庫libraries_v140_x64_py27_1.1.0.tar.bz2下載到該文件夾,由于通過命令行下載很慢,我們可以中斷命令的執行,手動下載該庫文件到build目錄下,然后再重新運行上面的指令。

    直接從 https://github.com/willyd/caffe-builder/releases 下載,然后將下載好的依賴包, 就放在.caffe\ dependencies\download\ 下。

    C:\Users\wcy\.caffe\dependencies\download\libraries_v140_x64_py35_1.1.0.tar.bz2

    5.在環境變量path中添加如下值

    C:\Users\wcy\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\bin C:\Users\wcy\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\lib C:\Users\wcy\.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\x64\vc14\bin

    也可以為了方便將上述解壓后的libraries拷貝到*\caffe-windows\scripts\build目錄下。同時相應地修改環境變量path中的值。

    添加完后,記得一定要重啟電腦。如果忘記添加環境變量或者未重啟的話,在matlab測試caffe時,會提示:

    caffe_.mexw64 無效的mex文件。

    6.編譯caffe,matlab,pycaffe項目

    用VS2015打開build文件夾下的Caffe.sln,會在VS的資源管理器目錄看到: caffe,matlab,pycaffe 三個項目,其默認是編譯release版本,我們依次進行編譯,可以通過選中項目,分別設為啟動項目,選擇release版本或者debug版本進行編譯,一般只對caffe進行版本的選擇,python、matlab只選擇release即可。

    通過選中項目,右鍵屬性的方式,看到三個項目的配置,以及編譯生成的文件保存的路徑:

    *:\caffe-windows\scripts\build\lib\Release\caffe.lib *:\caffe-windows\matlab+caffe\private\Release\caffe_.mexw64 *:\caffe-windows\scripts\build\lib\Release\_caffe.pyd

    當然也可以在下面編譯的過程中觀察輸出結果。


    接下來,我們進行測試。
    首先需要下載對應的model。 這里參考文章《Caffe學習系列(20):用訓練好的caffemodel來進行分類》

    1). 可以直接在瀏覽器里輸入地址下載,也可以運行腳本文件下載。下載地址為:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel

    文件名稱為:bvlc_reference_caffenet.caffemodel,文件大小為230M左右,為了代碼的統一,將這個caffemodel文件下載到caffe根目錄下的 models/bvlc_reference_caffenet/ 文件夾下面。也可以運行腳本文件進行

    python ./scripts/download_model_binary.py models/bvlc_reference_caffenet

    2). 均值文件。

    有了caffemodel文件,就需要對應的均值文件,在測試階段,需要把測試數據減去均值。這個文件我們用腳本來下載,在caffe根目錄下執行:

    ./data/ilsvrc12/get_ilsvrc_aux.sh

    但是由于該命令是linux下的,所以不能運行。但是我們可以打開該文件,其實就是下載里面的文件,并解壓即可。
    get_ilsvrc_aux.sh內容:

    #!/usr/bin/env sh # # N.B. This does not download the ilsvrcC12 data set, as it is gargantuan. # This script downloads the imagenet example auxiliary files including: # - the ilsvrc12 image mean, binaryproto # - synset ids and words # - Python pickle-format data of ImageNet graph structure and relative infogain # - the training splits with labelsDIR="$( cd "$(dirname "$0")" ; pwd -P )" cd "$DIR"echo "Downloading..."wget -c http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gzecho "Unzipping..."tar -xf caffe_ilsvrc12.tar.gz && rm -f caffe_ilsvrc12.tar.gzecho "Done."

    點擊http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gz下載后,解壓后,均值文件放在 data/ilsvrc12/ 文件夾里。

    3). synset_words.txt文件

    在調用腳本文件下載均值的時候,這個文件也一并下載好了。里面放的是1000個類的名稱。


    7.測試matlab
    在上面的保存生成路徑中,我們可以看到,caffe_.mexw64在*:\caffe-windows\matlab+caffe\private\Release目錄下,我們將其拷貝到:上一層目錄下,即private目錄下。然后打開matlab,將matlab工作路徑設置為:
    *:\caffe-windows\matlab\demo ,然后新建一個test_caffe.m, 即如下的matlab測試代碼,將上面下載下來的model的名稱文件synset_words.txt文件拷貝到當前路徑下(與test_caffe.m同路徑),直接運行test_caffe.m即可。(+caffe是matlab類,對接口進行了封裝).
    matlab測試code:

    % test_caffe.m close all;clear all; im = imread('../../examples/images/cat.jpg');%讀取圖片 figure;imshow(im);%顯示圖片 [scores, maxlabel] = classification_demo(im, 0);%獲取得分第二個參數0為CPU,1為GPU maxlabel %查看最大標簽是誰 figure;plot(scores);%畫出得分情況 axis([0, 999, -0.1, 0.5]);%坐標軸范圍 grid on %有網格fid = fopen('synset_words.txt', 'r'); i=0; while ~feof(fid)i=i+1;lin = fgetl(fid);lin = strtrim(lin);if(i==maxlabel)fprintf('the label of %d is %s\n',i,lin)breakend end

    結果:

    另一種測試方法:

    打開Matlab 切換到 *\caffe\caffe-windows\matlab 路徑下,
    輸入以下命令: caffe.run_tests()
    得到如下結果:

    >> caffe.run_tests() Cleared 0 solvers and 0 stand-alone nets 正在運行 caffe.test.test_net ..... 已完成 caffe.test.test_net __________正在運行 caffe.test.test_solver . 已完成 caffe.test.test_solver __________正在運行 caffe.test.test_io . 已完成 caffe.test.test_io __________Cleared 0 solvers and 0 stand-alone netsans = 1x7TestResult 數組(具有屬性):NamePassedFailedIncompleteDurationDetails總計:7 Passed, 0 Failed, 0 Incomplete.0.79735 秒測試時間。

    表明matlab接口安裝成功。


    8.測試python
    將 *:\caffe-windows\python 下的caffe文件夾,拷貝到:python的site-packages 文件夾下,我們這里是:

    D:\software\anaconda\Lib\site-packages

    其實我們會看到,編譯生成的_caffe.pyd 也會在*:\caffe-windows\python\caffe 目錄下生成一份。
    注意下面的代碼中caffe_root 要修改成自己的路徑。
    python測試code:

    # coding=utf-8 ''' Created on 2017年3月9日 ''' #安裝Python環境、numpy、matplotlib import numpy as np import matplotlib.pyplot as plt#設置默認顯示參數 plt.rcParams['figure.figsize'] = (10, 10) # 圖像顯示大小 plt.rcParams['image.interpolation'] = 'nearest' # 最近鄰差值: 像素為正方形 plt.rcParams['image.cmap'] = 'gray' # 使用灰度輸出而不是彩色輸出import sys caffe_root = 'E:/caffe-windows/' #該文件要從路徑{caffe_root}/examples下運行,否則要調整這一行。 sys.path.insert(0, caffe_root + 'python')import caffeimport os if os.path.isfile(caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'):print 'CaffeNet found.' else:print 'Downloading pre-trained CaffeNet model...' # !../scripts/download_model_binary.py ../models/bvlc_reference_caffenetcaffe.set_mode_cpu()model_def = caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt' model_weights = caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'net = caffe.Net(model_def, # 定義模型結構model_weights, # 包含了模型的訓練權值caffe.TEST) # 使用測試模式(不執行dropout)# 加載ImageNet圖像均值 (隨著Caffe一起發布的) mu = np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy') mu = mu.mean(1).mean(1) #對所有像素值取平均以此獲取BGR的均值像素值 print 'mean-subtracted values:', zip('BGR', mu)# 對輸入數據進行變換 transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})transformer.set_transpose('data', (2,0,1)) #將圖像的通道數設置為outermost的維數 transformer.set_mean('data', mu) #對于每個通道,都減去BGR的均值像素值 transformer.set_raw_scale('data', 255) #將像素值從[0,255]變換到[0,1]之間 transformer.set_channel_swap('data', (2,1,0)) #交換通道,從RGB變換到BGR# 設置輸入圖像大小 net.blobs['data'].reshape(50, # batch 大小3, # 3-channel (BGR) images227, 227) # 圖像大小為:227x227 image = caffe.io.load_image(caffe_root + 'examples/images/cat.jpg') transformed_image = transformer.preprocess('data', image) plt.imshow(image) plt.show()# 將圖像數據拷貝到為net分配的內存中 net.blobs['data'].data[...] = transformed_image### 執行分類 output = net.forward() output_prob = output['prob'][0] #batch中第一張圖像的概率值 print 'predicted class is:', output_prob.argmax() # 加載ImageNet標簽 labels_file = caffe_root + 'data/ilsvrc12/synset_words.txt' # if not os.path.exists(labels_file): # !../data/ilsvrc12/get_ilsvrc_aux.shlabels = np.loadtxt(labels_file, str, delimiter='\t')print 'output label:', labels[output_prob.argmax()]

    結果:
    CaffeNet found.
    mean-subtracted values: [(‘B’, 104.0069879317889), (‘G’, 116.66876761696767), (‘R’, 122.6789143406786)]


    predicted class is: 281
    output label: n02123045 tabby, tabby cat


    9.測試c++版本

    首先 :生成exe應用程序
    和編譯caffe同樣的步驟,直接按照如下圖,選擇設置為啟動項目,進行生成。
    我們需要生成caffe.exe compute_image_mean.exe convert_imageset.exe。

    1). 下載好MINIST數據:http://pan.baidu.com/s/1o7YrhKe,下載完之后解壓,將mnist-test-leveldb與mnist-train-leveldb文件夾放到examples\mnist\文件夾下。
    2).修改lenet_train_test.prototxt文件,四處地方:

    //需要修改四處地方,如下注釋標注 name: "LeNet" layer {name: "mnist"type: "Data"top: "data"top: "label"include {phase: TRAIN}transform_param {scale: 0.00390625}data_param {source: "....省略/examples/mnist/mnist-train-leveldb" //寫上你的絕對路徑batch_size: 64backend: LEVELDB //格式改成LEVELDB} } layer {name: "mnist"type: "Data"top: "data"top: "label"include {phase: TEST}transform_param {scale: 0.00390625}data_param {source: "....省略/examples/mnist/mnist-test-leveldb"//寫上你的絕對路徑batch_size: 100backend: LEVELDB //格式改成LEVELDB} }

    修改lenet_solver.prototxt文件,三個地方:

    net: "....省略/examples/mnist/lenet_train_test.prototxt" //絕對路徑snapshot_prefix: "....省略/examples/mnist/lenet" //絕對路徑solver_mode: CPU //CPU模式,

    右鍵caffe打開屬性,在調試-命令參數里設置輸入:

    train --solver=前面的絕對路徑/mnist/lenet_solver.prototxt

    成功運行!
    也可以編寫批處理文件run.bat內容如下:

    *\caffe\build\tools\Release\caffe.exe train --solver=前面的絕對路徑/mnist/lenet_solver.prototxt Pause

    即可看到運行界面啦~


    至此,caffe在VS2015上成功安裝并調試~

    參考文獻

  • caffe官網:https://github.com/BVLC/caffe/tree/windows
  • caffe在Windows+VS2015+CPU ONLY下的編譯
  • Windows下VS2015編譯caffe(CPU ONLY)
  • 在Windows10上使用Visual Studio 2015 構建Caffe
  • caffe/models/bvlc_reference_caffenet/
  • (重要) 安裝Windows10 和環境下的caffe(新版)
  • (重要)Caffe學習系列(20):用訓練好的caffemodel來進行分類
  • (重要)VS2015+caffe+matlab+python+CPU
  • 總結

    以上是生活随笔為你收集整理的win7+vs2015/13+caffe+matlab+python(CPU only)配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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