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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux跑caffe模型的步骤,Caffe初步实践——使用训练好的模型完成语义分割任务

發布時間:2023/12/1 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux跑caffe模型的步骤,Caffe初步实践——使用训练好的模型完成语义分割任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Caffe剛剛安裝配置結束,乘熱打鐵!

(一)環境準備

前面我有兩篇文章寫到caffe的搭建,第一篇cpu only ,第二篇是在服務器上搭建的,其中第二篇因為硬件環境更佳我們的步驟稍顯復雜。其實,第二篇也僅僅是caffe的初步搭建完成,還沒有編譯python接口,那么下面我們一起搞定吧!

在這篇博文的結尾,我們再增加編譯Python接口,而這部分內容請參考我的博文《 Ubuntu14.04搭建Caffe(僅cpu) 》http://www.linuxidc.com/Linux/2016-09/135034.htm?,這篇文章從編譯Python接口部分看就好了。

(二)下載模型

作者在github上開源了代碼:Fully Convolutional Networks,我們首先將代碼下載并且解壓到家目錄下。

項目文件結構很清晰,如果想train自己的model,只需要修改一些文件路徑設置即可,這里我們應用已經train好的model來測試一下自己的圖片:

我們下載voc-fcn32s,voc-fcn16s以及voc-fcn8s的caffemodel(根據提供好的caffemodel-url),fcn-16s和fcn32s都是缺少deploy.prototxt的,我們根據train.prototxt稍加修改即可。注意,這里的caffemode-url其實在各個模型的文件夾下面都已經提供給我們了,請讀者細心找一找,看看是不是每一個文件夾下面都有一個caffemode-url的文件?打開里面會有模型的下載地址!

(三)修改infer.py文件

caffe path的加入,由于FCN代碼和caffe代碼是獨立的文件夾,因此,須將caffe的Python接口加入到path中去。這里有兩種方案,一種是在所有代碼中出現import caffe之前,加入:

1 importsys2 sys.path.append('caffe根目錄/python')

另一種一勞永逸的方法是:在終端或者bashrc中將接口加入到PYTHONPATH中:

export PYTHONPATH=caffe根目錄/python:$PYTHONPATH

本次我們采用后者。

在解壓代碼的根目錄下找到一個文件:infer.py。略微修改infer.py,就可以測試我們自己的圖片了,請大家根據自己實際情況來進行修改。

im = Image.open('voc-fcn8s/test.jpeg')?這里指的是測試圖片路徑!

net = caffe.Net('voc-fcn8s/deploy.prototxt', 'voc-fcn8s/fcn8s-heavy-pascal.caffemodel', caffe.TEST)?,這里指的是voc-fcn8s文件下的部署文件和模型。注意,fcn下每一個模型其實都對應于一個文件夾,而每個文件夾下應當放著這個模型的caffemodel文件和prototxt文件!

plt.savefig('test.png')?,這里指的是最終分割的結果應當放置在哪個路徑下,大家都知道,語義分割的結果應當是一張圖片!

修改完后的infer.py如下所示:

1 importnumpy as np2 from PIL importImage3 importmatplotlib.pyplot as plt4 importcaffe5

6 #load image, switch to BGR, subtract mean, and make dims C x H x W for Caffe

7 im = Image.open('voc-fcn8s/test.jpeg')8 in_ = np.array(im, dtype=np.float32)9 in_ = in_[:,:,::-1]10 in_ -= np.array((104.00698793,116.66876762,122.67891434))11 in_ = in_.transpose((2,0,1))12

13 #load net

14 net = caffe.Net('voc-fcn8s/deploy.prototxt', 'voc-fcn8s/fcn8s-heavy-pascal.caffemodel', caffe.TEST)15 #shape for input (data blob is N x C x H x W), set data

16 net.blobs['data'].reshape(1, *in_.shape)17 net.blobs['data'].data[...] =in_18 #run net and take argmax for prediction

19 net.forward()20 out = net.blobs['score'].data[0].argmax(axis=0)21

22 plt.imshow(out,cmap='gray');23 plt.axis('off')24 plt.savefig('test.png')25 #plt.show()

運行結束后會在軟件的根目錄下生成一個分割好的圖片test.png!

我們可以看一下原始圖片和最后生成的圖片的區別:

可能會遇到的問題:

(1)no display name and no $DISPLAY environment variable

其實,在Ubuntu虛擬終端里執行python infer.py是沒有任何錯誤的,但是我是通過遠程訪問連接服務器的方式運行程序的。所以在執行到最后的時候會報這個錯。不過不要害怕,

在stackoverflow中找到了終極解決辦法:

如圖中所示的步驟,找到matplotlibrc,將backend從tkAGG修改為AGG。

sudo gedit /home/xuanxufeng/.local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

再次在putty中執行就沒有任何問題了!

(2)在執行python infer.py時可能會提示缺少某一兩個模塊。

這個不用擔心,都是小問題,百度很容易搜到,一兩個命令安裝就好了~

(四) 結束語

從開始讀論文到現在,也算是前進了一小步,可以看見的一小步。在往后,隨著實驗的一步步進行,我還會再更新模型的訓練以及訓練數據集的制作!請各位看官耐心等待!

Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝 http://www.linuxidc.com/Linux/2016-07/132860.htm

Caffe配置簡明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 )? http://www.linuxidc.com/Linux/2016-09/135016.htm

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux跑caffe模型的步骤,Caffe初步实践——使用训练好的模型完成语义分割任务的全部內容,希望文章能夠幫你解決所遇到的問題。

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