caffe調用的一個例子

本文是學習Caffe官方文檔"ImageNet Tutorial"時做的,同樣由于是Windows版本的原因,很多shell腳本不能直接使用,走了不少彎路,但是收獲也不少。比如:如何讓shell腳本在Windows系統上直接運行、如何去用Caffe給圖像resize來統一大小,如何去構建train.txt和val.txt等等。具體流程均記錄如下。


正文:

1.準備數據

我從網上下載了兩類圖片,一類為貓,一類為鳥,分別存在名為bird和cat的文件夾里,每類60張(50張做為訓練集,10張做為測試集)。【分開存放,在做train.txt時,方便打標簽。等做完標簽再將100張訓練圖片一起放在新建的train文件下里,下面會詳述。】

貓:(已經過批量重命名。ps:我選圖還是比較講究的,不好看的、不清楚的、不奇怪的我不選,哈哈)


鳥:(已經過批量重命名)



2.構建train.txt和val.txt


首先是重命名圖片,從搜索引擎下載下來的圖片的名稱都是則亂無章,我們需要用批量重命名的方法去先給它們命名。

批量重命名可以通過一個bat文件實現,代碼如下:



修改其中的“bird”位置,運行。比如,我將“bird”改為“Cat”,運行bat文件,效果如下:




可以看到圖片名字被統一的修改了,并且生成了一個list文件夾,通過txt文件的查找-替換,給每個文件打上標簽(比如Cat為0,Bird為1),截圖如下:


下面的工作自己做就行了,將cat和bird的txt文檔,合在一起,組成train.txt。同理,完成val.txt。我的train.txt和val.txt的截圖如下(我標簽用了1和2):




3.數據處理


數據處理要進行三項:1.將圖片統一轉化成256X256大小。2.將數據轉化為LEVELDB格式。3.求數據均值。

看了一些博客,在將圖片統一轉化成256大小這兒曲線救國,想了很多方法。其實第1步和第2步可以一起完成,只要調用examples\imagenet\create_imagenet.sh就可以一起完成。但是shell腳本在Windows下如何運行呢?是可以的,只需要安裝Git即可在Windows環境下運行shell腳本!Git下載鏈接:https://git-scm.com/downloads/

根據具體情況,對create_imagenet.sh,做一些修改(需要修改處均用紅色方框標出,五角星處即是caffe自帶的resize圖片的地方,一定要設為true):




打開git,運行create_imagenet.sh即可,查看文件夾,出現imagenet_train_leveldb和imagene_val_leveldb:



接下來是進行第三步,求圖像均值了。在進行這一步時,我使用\examples\imagenet\make_imagenet_mean.sh時,是成功求得了均值文件imagenet_mean.binaryproto,但在之后訓練時,一直報錯,提示均值文件無法讀取。故還是換用了compute_image_mean.exe,來求得均值文件,具體步驟,之前的文章已經記錄了,不再贅述。

再從\models\bvlc_reference_caffenet中,將train_val.prototxt和solver.prototxt復制過來,這樣所有文件都準備齊全了:



4.配置訓練所需文件


首先,根據具體情況修改,train_val.prototxt:





修改solver.prototxt:




關于solver里面的參數,我認為應該根據具體情況就修改就好了,這一部分我還不是很熟悉,慢慢積累吧。


5.進行訓練


寫一個bat文件,進行訓練即可!bat文件代碼如下:



6.訓練結果


因為我的電腦配置很低很低。。所以訓練起來很慢,我調小了很多參數,訓練了兩天還是沒訓完。。。貼一張訓練中的截圖吧:


?

7.總結


這次主要是為了自己感受一下用Windows Caffe訓練自己數據的整個過程,也沒有去追求準確率,也沒有考慮去跟蹤訓練過程去調參等等。這些經驗方面的知識,接下來慢慢繼續積累吧。經過這次學習,起碼能把整個過程跑下來了,收獲很多。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387319.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387319.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387319.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

孔銅的銅厚

---恢復內容開始--- 表面處理方式注釋&#xff1a; 噴錫 噴錫鉛合金是一種最低成本PCB表面有鉛工藝&#xff0c;它能保持良好的可焊接性。但對于精細引腳間距(<0.64mm)的情況&#xff0c;可能導致焊料的橋接和厚度問題。 無鉛噴錫 一種無鉛表面處理工藝&#xff0c;符合“環…

1 kafka簡介

Publish-subscribe distributed messaging system. A distributed commit log. kafka集群中的服務器都叫broker。 客戶端有兩類&#xff1a;producer、consumer。 客戶端和broker之間使用TCP協議。 不同業務系統的消息通過topic進行區分。 消息的topic會分區&#xff0c;以…

各種機器學習的優缺點及應用場景

目錄 正則化算法&#xff08;Regularization Algorithms&#xff09; 集成算法&#xff08;Ensemble Algorithms&#xff09; 決策樹算法&#xff08;Decision Tree Algorithm&#xff09; 回歸&#xff08;Regression&#xff09; 人工神經網絡&#xff08;Artificial…

微信公眾號接入開發者模式,服務器配置Token驗證

概述 接入微信公眾平臺開發&#xff0c;開發者需要按照如下步驟完成&#xff1a; 填寫服務器配置驗證服務器地址的有效性依據接口文檔實現業務邏輯官方指南文檔服務器配置 服務器地址(URL)&#xff1a;填寫完URL后&#xff0c;微信服務器會發送GET請求&#xff0c;并攜帶以下參…

2 kafka安裝

單節點&#xff1a; 1、解壓kafka壓縮包到安裝目錄&#xff08;自己指定&#xff09;&#xff1b; 2、進入kafka目錄并執行命令 > bin/zookeeper-server-start.sh config/zookeeper.properties #如果報錯&#xff0c;修改kafka-run-class.sh&#xff0c;將 -XX:UseComp…

TensorFlow自帶例子

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception&#xff0c;這里補充一個Windows下的&#xff0c;使用AForge庫(www.aforgenet.com)操作攝像頭。 代碼在這里下載&#xff0c;使用Visual Studio 2017編譯。 http://files.cnblogs.com/files/autosoft…

遇到Visual Studio 當前不會命中斷點.還沒有為該文檔加載任何符號的情況

一.問題及原因 有這樣一種調用邏輯:A.exe調用B.dll.現在想要在B的源代碼中打斷點,從A發起進行調試,卻給出了"當前不會命中斷點.還沒有為該文檔加載任何符號"的提示.感覺十分奇怪,各種重新生成,重啟VS都沒啥用,最后不得以網上搜了一番,找到了問題的根源. 原來我把舊的…

java01基礎簡介

1 java概述 開發服務器端應用程序最流行語言&#xff0c;產生網頁、運行后端邏輯。 當對java了解到一定程度&#xff0c;閱讀源碼才能解決問題。 Applet&#xff1a;在網頁中運行的java程序&#xff0c; Java的應用領域&#xff1a; 桌面應用系統開發 企業級應用開發 多媒…

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception v1,這里補充一個Windows下的,使用AForge庫(www.aforgenet.com)操作

TensorFlow自帶例子已經包含了android和ios下的攝像頭圖像分類示例Inception v1&#xff0c;這里補充一個Windows下的&#xff0c;使用AForge庫(www.aforgenet.com)操作攝像頭。 代碼在這里下載&#xff0c;使用Visual Studio 2017編譯。 http://files.cnblogs.com/files/autos…

Docker+Mongodb

DockerMongodb 原文:DockerMongodbdocker search mongodb docker run -d -p 2701:27017 -v /usr/mongodb/data:/data/db -v /usr/mongodb/databack:/data/backup --name mongo-v1.0.0 mongo --auth docker exec -it mongo-v1.0.0 mongo admin docker exec -it mongo-v1.0.…

Java02繼承

5繼承 5.1 類、超類和子類 關鍵字extends表示繼承。 Java中的繼承都是公用繼承&#xff0c;沒有C中的私有繼承和保護繼承。 Super class Subclass 來自于集合的術語 Base class Derived class Parent class Child class 將通用的功能放在超類中&#xff0c;將具有特…

BP神經網絡與Python實現

人工神經網絡是一種經典的機器學習模型&#xff0c;隨著深度學習的發展神經網絡模型日益完善.聯想大家熟悉的回歸問題&#xff0c; 神經網絡模型實際上是根據訓練樣本創造出一個多維輸入多維輸出的函數&#xff0c; 并使用該函數進行預測&#xff0c; 網絡的訓練過程即為調節該…

《關于長沙.NET技術社區未來發展規劃》問卷調查結果公布

那些開發者們對于社區的美好期待 2月&#xff0c;長沙.net 技術社區自從把群拉起來開始&#xff0c;做了一次比較正式、題目為《關于長沙.NET技術社區未來發展規劃》的問卷調查&#xff0c;在問卷調查中&#xff0c;溪源寫道&#xff1a; 隨著互聯網時代的到來&#xff0c;互聯…

Java03接口與內部類

6 接口與內部類 接口 interface 對象克隆 內部類 inner class 代理 proxy 6.1 接口 public interface Comparable<T> {int compareTo(T other); }Arrays.sort(Object[] a) 利用的是mergesort 接口也可以被擴展 public interface Moveable {void move(double x, doub…

第一節:ASP.NET開發環境配置

第一節&#xff1a;ASP.NET開發環境配置 什么是ASP.NET&#xff0c;學這個可以做什么&#xff0c;學習這些有什么內容&#xff1f; ASP.NET是微軟公司推出的WEB開發技術。 2002年&#xff0c;推出第一個版本&#xff0c;先后推出ASP.NET2.0&#xff0c;和ASP.NET3.5&#xff0c…

深度學習筆記之win7下TensorFlow的安裝

最近要學習神經網絡相關的內容&#xff0c;所以需要安裝TensorFlow。不得不說&#xff0c;安裝TensorFlow的感受就像是大一剛入學學習C語言時&#xff0c;安裝vs時一樣&#xff0c;問題一大堆&#xff0c;工具都裝不好&#xff0c;還學啥呀。好在&#xff0c;就在昨晚&#xff…

Java04異常、斷言、日志和調試

11 異常、斷言、日志和調試 異常處理&#xff08;exception handing&#xff09; 使用斷言來啟動檢測 Java日志框架 調試技巧 11.1 處理錯誤 如果一個方法不能夠采用正常的途徑完成任務&#xff0c;就通過另外一個路徑退出方法。 在這種情況下&#xff0c;方法不返回任何…

全雙工與半雙工的區別

1、全雙工傳輸 (英文Full&#xff0d;Duplex &#xff09; 是指交換機在發送數據的同時也能夠接收數據&#xff0c;兩者同步進行&#xff0c;這好像我們平時打電話一樣&#xff0c;說話的同時也能夠聽到對方的聲音。目前的交換機都支持全雙工。全雙工的好處在于遲延小&#xff…

人臉識別經典算法一:特征臉方法(Eigenface)

這篇文章是擼主要介紹人臉識別經典方法的第一篇&#xff0c;后續會有其他方法更新。特征臉方法基本是將人臉識別推向真正可用的第一種方法&#xff0c;了解一下還是很有必要的。特征臉用到的理論基礎PCA在另一篇博客里&#xff1a;特征臉(Eigenface)理論基礎-PCA(主成分分析法)…

Java05泛型

12 泛型 12.1 為什么使用泛型 泛型程序設計&#xff08;Generic programming&#xff09;&#xff1a;意味著編寫的代碼可以被很多不同類型的對象所重用。 類型參數&#xff08;type parameters&#xff09; 通配符類型&#xff08;wildcard type&#xff09; 可以將Manage…