深度學習21天實戰caffe學習筆記《16:Caffe遷移和部署》
Caffe的遷移和部署
1、從開發測試到生產部署 : 離線訓練、在線識別
開發:離線訓練階段
數據專家選擇訓練數據,算法專家設計模型參數,開發專家優化和調試訓練過程,得到滿足發布的模型,在caffe中表現為*.caffemodel文件;
部署:在線識別階段
利用發布模型到線上或者某個嵌入式平臺生產機器,接入線上其他服務(存儲、數據庫),獲取在線數據并用上述模型處理,將結果返回客戶端。并且將異常結果反饋給開發階段,知道數據專家提出“臟”數據、算法專家改進型、開發專家排查代碼bug,得到更加準確的模型。
2、使用Docker
Docker是開源應用容器引擎,開發者可以吧一個linux應用和他所一男的一切(比如配置文件和庫)都翻轉到一個容器中,然后發布到任何Linux機器上。
Docker作為一個全新的自動化運維工具,可以實現開發測試環境和生產部署的平滑遷移。
Why:
(開發和部署)離線訓練、在線識別
Docker:
開源的應用容器引擎,沙箱機制,自動化運維工具,實現開發測試環境與生產部署環境的平滑遷移。
Docker與傳統的虛擬機(如VMware,VirtualBox)很相似,但更具優勢:
- 1、創建和銷毀秒級完成,啟動速度飛快;
- 2、體積小,可遷移到任何流行的Linux機器上;
- 3、占用系統資源極低;
- 4、可自動化部署、集群管理
Docker 兩個主要部件:
- Docker: 開源的容器虛擬化平臺
- Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平臺 -- Docker Hub
基本概念:
- Docker 守護進程
Docker 守護進程運行在一臺主機上。用戶并不直接和守護進程進行交互,而是通過 Docker 客戶端間接和其通信。
- Docker 客戶端
Docker 客戶端,實際上是 docker 的二進制程序,是主要的用戶與 Docker 交互方式。它接收用戶指令并且與背后的 Docker 守護進程通信,如此來回往復。
- Docker 內部
主要三種部件:
鏡像(Image):一個包含了應用程序和其運行時依賴環境的制度文件(類比系統盤、可執行程序文件),他是構建容器的民辦,通過一個極限可以構造出很多獨立當時運行環境一樣的容器。
容器(Container):基于某個鏡像生成并動態運行運行的相互隔離的實例(類比運行起來的操作系統、運行可執行程序文件的進程)
鏡像倉庫(Docker Hub):Docker廣泛提供的用于集中存儲、管理就像的服務,采用類似于Git Hub的方式保存共有或者私有的鏡像,同時允許第三方搭建。
安裝:
Ubuntu14.04環境下:
$apt-get update
$apt-get -y install docker.io
檢查Docker服務的狀態:$service docker.io status
自啟動服務:$update-rc.d docker.io defaults
添加Docker用戶組:默認情況只有root可以使用權限,創建docker用戶組將使用docker的用戶添加進來,避免多人同時使用root用戶。
$usermod -aG docker your_user_name
測試安裝:#docker run hello-world
入門:
0、查看docker信息:
$ docker
1、顯示Docker信息
$docker vision #顯示版本信息
$docker info #使用狀態
2、下載Docker鏡像$docker pull ubuntu #從docker注冊服務器的軟件倉庫下載一個現成的docker鏡像
$docker images #查看系統中已經有的鏡像
3、從鏡像創建Docker容器$docker run -i -t ubuntu/bin/bash #創建一個活動的容器
-i : 交互模式,輸入輸出在控制臺進行;-d 容器啟動后進入后臺工作,非交互模式-t :為創建的容器分配一個偽終端tty
ubuntu:創建容器的鏡像名稱,可以用鏡像ID代替
/bin/bash :在新建的容器中運行的命令,任意linux命令
注: Ctrl+P--->Ctrl+Q返回宿主機終端會話
$docker ps 查看當前活動的容器
$docker attach 610 #重新與之前的容器建立連接(610是CONTAIN ID的錢3個字符)
4、從容器創建Docker鏡像
(1)、從運行的容器創建;
$docker commit -m "Test a change" 610 ubuntu:test_change
ubuntu:test_change為新鏡像的名字ID(679)
(2)、編寫Docker文件創建鏡像;
5、上傳Docker鏡像
#注冊Docker Hub賬號,登錄
$docker login
#推送鏡像到Hub
$docker tag 610 zxx/mastercaffe :test_ubuntu_change
$docker push zxx/mastercaffe :test_ubuntu_change #push與pull作用相反
進階:
1、阿里云Docker Hub管理鏡像
https://dev.aliyun.com/search.html
具體步驟可以上網查。
2、其他國內云平臺:
- DaoCloud https://www.daocloud.io/
- 網易蜂巢 https://c.163.com/ 提供鏡像倉庫、容器云服務
- DaoCloud:提供鏡像倉庫、應用管理、應用編排、數據卷、集群管理,并且免費使用1~2個容器,或者加入自己的服務器進行管理。
- 百度BAE:提供彈性、分布式的應用托管服務,幫助開發者一站式輕松開發并部署應用程序(Web應用及移動應用)。每月花幾元錢就可以使用容器服務部署應用程序。
- 靈雀云:容器云平臺,提供企業級應用集成、交付、運維的一站式解決方案。
不是專門研究這個的所以不花費太多時間,了解就好
參考資料:
http://blog.csdn.net/zmx729618/article/details/72930474
http://blog.csdn.net/u012562943/article/category/6048991
智能推薦
深度學習Caffe實戰筆記(21)Windows平臺 Faster-RCNN 訓練好的模型測試數據
前一篇博客介紹了如何利用Faster-RCNN訓練自己的數據集,訓練好會得到一個模型,這篇博客介紹如何利用訓練好的模型進行測試數據。 1、訓練好的模型存放位置 訓練好的模型存放在faster_rcnn-master\output\faster_rcnn_final\faster_rcnn_VOC2007_ZF,把script_faster_rcnn_demo.m文件拷貝到faster_rcnn-m...
《21天實戰caffe》 讀書筆記(六)
第六天 運行手寫體數字識別例程 1、MNIST數據集 MNIST數據集包括60000個訓練集和10000個測試集,每張圖都已經進行尺寸歸一化、數字居中處理,固定尺寸為28像素*28像素。 MNIST數據集可以在Caffe源碼框架的data/mnist下用get_mnist.sh腳本下載。 MNIST原始數據為4個文件,數據格式描述見下圖。 下載到的原始數據集為二進制文件,需要轉換為LEVELDB或...
《深度學習——實戰caffe》——繪制網絡模型
python/draw_net.py, 這個文件,就是用來繪制網絡模型的。也就是將網絡模型由prototxt變成一張圖片。 在繪制之前,需要先安裝兩個庫 1、安裝GraphViz 注意,這里用的是apt-get來安裝,而不是pip. 2 、安裝pydot 用的是pip來安裝,而不是apt-get 安裝好了,就可以調用腳本來繪制圖片了 draw_net.py執行的時候帶三個參數 第一個參數:網絡模型...
深度學習Caffe實戰筆記(7)Caffe平臺下,如何調整卷積神經網絡結構
授人以魚不如授人以漁,紅鯉魚家有頭小綠驢叫驢屢屢。至于修改網絡結構多虧了課題組大師姐老龐,在小米實習回校修整,我問她怎么修改網絡,她說改網絡就是改協議,哎呀,一語驚醒夢中人啊!老龐師姐,你真美!雖然博主之前也想過修改網絡協議試一試,鑒于一直不懂網絡結構中的各個參數是干啥的,所以一直沒去實施,這次終于開始嘗試了。 caffe平臺實現卷積神經網絡實在方便的很啊,只需要一個協議文件定義一下網...
caffe學習筆記
修改solver文件參數 首先打開模型優化文件,lenet_solver.prototxt。 關鍵參數如下: 然后我把學習率調整到了0.02,保存退出。進行訓練: 我們可以發現,把學習率調高之后,訓練時的loss(損失程度)也增大了。 Finetune 所謂fine tune就是用別人訓練好的模型,加上我們自己的數據,來訓練新的模型。fine tune相當于使用別人的模型的前幾層,來提取淺層特征,...
猜你喜歡
caffe學習——caffe安裝
一,引言 安裝環境:VMware里裝的ubuntu14.04,(由于是虛擬機,好像只能裝cpu版的caffe,反正是學習嗎,暫時不追求速度了) 二,安裝步驟 1.安裝一些依賴庫 2.安裝Python 的一些依賴庫 ATLAS是python下的一個線性代數庫,是基于線性代數庫lapack的; 安裝gfortran,后面編譯過程中會用到 BLAS,全稱Basic Linear Algebr...
深度學習Caffe實戰筆記(2)用LeNet跑車牌識別數據
caffe實戰之“車牌識別” 上一篇博客寫了如何在cpu的情況下配置環境,配置好環境后編譯成功,就可以用caffe框架訓練卷積神經網絡了。今天介紹如何在caffe環境下,跑車牌識別的數據,利用的網絡是LeNet,這里只介紹具體caffe實戰步驟,網絡結構不做具體介紹。 1、準備數據 在caffe根目錄下的data文件夾下新建一個mine文件夾,在mine文件夾新建一個tra...
深度學習Caffe實戰筆記(3)用AlexNet跑自己的數據
上一篇博客介紹了如何在caffe框架平臺下,用LeNet網絡訓練車牌識別數據,今天介紹用AlexNet跑自己的數據,同樣基于windows平臺下,會比基于Ubuntu平臺下麻煩一些,特別是后面的Siamese網絡,說起Siamese網絡真是一把辛酸一把淚啊,先讓我哭一會,,,,,哭了5分鐘,算了,Siamese網絡的苦水等以后再倒吧,言歸正傳,開始train。 在caffe平臺下,實現用Alexn...
深度學習Caffe實戰筆記(19)Windows平臺 Faster-RCNN 制作自己的數據集
萬里長征第一步,就是要制作自己的數據集,過程還是比較繁瑣的,特別是標注的過程,這篇博客先介紹如果制作voc2007自己的數據集用于faster-rcnn訓練,下一篇博客介紹如何用faster-rcnn訓練自己的數據。 1、準備圖像 圖像要用.jpg或者jpeg格式的,如果是png或者其它格式,自己轉換一下就好,圖像名稱要用000001.jpg,只有和VOC2007數據集圖像名稱一致,才能最大限度的...
深度學習Caffe實戰筆記(18)Windows平臺 Faster-RCNN 環境配置
好久不寫博客了,因為前一段時間博主身體抱恙,感觸頗多。。。。。。都說windows平臺做caffe和tensorflow坑多,博主沒有太多優點,唯獨的一個優點就是不服輸,Windows平臺雖然坑多,但是填坑也是蠻有意思的一件事情。另外,在Siamese網絡訓練自己的數據那個博客,經過高人點評,有些不太完善的地方,具體的信息請看那篇博客的一個長評論。 勞動節的時候幫一個師妹配置caffe,她說要做R...