<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > DeepDetect――機器學(xué)習框架的API統一

DeepDetect――機器學(xué)習框架的API統一

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

,一個(gè)專(zhuān)為深度學(xué)習的開(kāi)源API和服務(wù)。 的API 簡(jiǎn)單直觀(guān)、易用、通用和易擴展。

本文引用地址:http://dyxdggzs.com/article/201610/307675.htm

在其他貢獻者的幫助下,他集成了 Caffe , XGBoost 和 Tensorflow (很快將完成),并且未對原服務(wù)或者API修改。

XGBoost梯度提升法樹(shù)是深度模型常用的算法。Tensorflow支持分布式訓練模型和數據,并且能很好的支持LSTM和RNNs神經(jīng)網(wǎng)絡(luò )算法。Caffe擅長(cháng)處理圖像和文本數據。讓你在這些深度學(xué)習框架間自由轉換。

下面將介紹實(shí)現通用深度學(xué)習API的主要原則。同時(shí)也期待大家貢獻出一些想法和評價(jià)來(lái)提高DeepDetect。

創(chuàng )業(yè)公司期待構建一個(gè)可認證的深度學(xué)習的SaaS API,可擴展,并能快速市場(chǎng)化、產(chǎn)品化;

企業(yè)期待與已有系統可以無(wú)縫銜接,剛開(kāi)始數據流比較慢,后續模型需要隨著(zhù)數據的增加而進(jìn)行優(yōu)化。并且對應的技術(shù)可以復制到其他項目中或者部門(mén)。

符合上述兩個(gè)要求的開(kāi)源項目有搜索引擎 Elasticsearch ,可擴展搜索引擎,清晰的REST風(fēng)格API和完全JSON化的輸入/輸出數據結構。

那深度學(xué)習API集成服務(wù)該怎樣實(shí)現呢?下面給出幾點(diǎn):

無(wú)需重寫(xiě):深度學(xué)習()就像密碼學(xué),只需生成一次。無(wú)需重寫(xiě)對存在多種深度學(xué)習庫是非要重要的;

無(wú)縫轉換:開(kāi)發(fā)和產(chǎn)品發(fā)布具有相同的環(huán)境會(huì )加快測試和發(fā)布周期,避免出現bug;

簡(jiǎn)化命令行:簡(jiǎn)單、人性化的輸入/輸出格式,比如JSON格式。簡(jiǎn)單即是王道;

產(chǎn)品化:專(zhuān)業(yè)的服務(wù)生命周期更期待在數據預測,而不是訓練模型。

如果有一種通用服務(wù)能融合以上的點(diǎn),簡(jiǎn)單且強悍的API,它將會(huì )同時(shí)滿(mǎn)足開(kāi)發(fā)人員和企業(yè)訴求,并且在開(kāi)發(fā)和產(chǎn)品之間無(wú)縫切換。它將會(huì )采用JSON數據格式,用單一框架和其他深度學(xué)習和機器學(xué)習開(kāi)發(fā)庫,并隱藏各代碼間的內部復雜性。

DeepDetect機器學(xué)習API核心部分是資源和數據輸入/輸出格式。資源過(guò)去是指服務(wù)器資源,而不是指機器學(xué)習服務(wù)。此種設計的原因是GPU和內存在POST機器學(xué)習服務(wù)作業(yè)時(shí)是緊缺資源。讓他們看看有哪些核心資源:

服務(wù)器信息:通過(guò)GET目錄/info獲取服務(wù)器信息;

機器學(xué)習服務(wù)管理:通過(guò)PUT(創(chuàng )建一個(gè)機器學(xué)習服務(wù))、GET(獲得一個(gè)機器學(xué)習服務(wù)狀態(tài))和POST(更新一個(gè)機器學(xué)習服務(wù))目錄/services進(jìn)行機器學(xué)習服務(wù)的管理;

模型訓練:通過(guò)POST(創(chuàng )建一個(gè)新的訓練作業(yè))、GET(獲取一個(gè)訓練作業(yè)的狀態(tài))和DELETE(取消一個(gè)訓練作業(yè))目錄/train進(jìn)行模型訓練;

數據預測:通過(guò)POST(發(fā)送數據到服務(wù))目錄/predict進(jìn)行數據預測。

所以服務(wù)包括機器學(xué)習服務(wù)、模型訓練和數據預測,這些服務(wù)資源是統計模型上兩種主要操作。在這個(gè)階段監督學(xué)習服務(wù)和無(wú)監督學(xué)習服務(wù)沒(méi)什么區別。

機器學(xué)習的主要參數是輸入或預處理、統計學(xué)習和最終輸出,映入腦海里的是:input,mllib和output三種。mllib指定支持的機器學(xué)習庫,input和output不寫(xiě)自明。下面是一個(gè)例子,創(chuàng )建一個(gè)圖像分類(lèi)的服務(wù):

PUT /services/imageserv

{

“description”: “image classification service”,

“mllib”: “caffe”,

“model”: {

“repository”: “/path/to/models/imgnet”,

“templates”: “../templates/caffe/”

},

“parameters”: {

“input”: {

“connector”: “image”

},

“mllib”: {

“nclasses”: 1000,

“template”: “googlenet”

},

“output”: {

}

},

“type”: “supervised”

}

參數一般包括input,mllib和output,監督學(xué)習服務(wù)和無(wú)監督學(xué)習服務(wù)通過(guò)調整輸出connector設置。input connector處理輸入格式,支持CSV、libsvm和text等格式,包括圖像和特征。mllib部件指定的是服務(wù)創(chuàng )建、訓練和預測模型的機器學(xué)習庫,非常方便的引用各機器學(xué)習庫的參數,并且保留了參數標志。

下面給出一個(gè)CSV格式的input connector例子:

“input”: {

“id”: “Id”,

“label”: “Cover”,

“separator”: “,”,

“shuffle”: true,

“test_split”: 0.1

}

下面是一個(gè)典型訓練模型的output connector:

“output”: {

“measure”: [

“acc”,

“mcll”,

“f1”

]

}

接下來(lái)給出一個(gè)復雜點(diǎn)的輸出,Mustache格式的輸出模版(標準化的JSON格式可以轉化成任意其他的格式):

{

“network”: {

“http_method”: “POST”,

“url”: “http://localhost:9200/images/img

},

“template”: “{ {{#body}}{{#predictions}} ”uri”:”{{uri}}”,

”categories”: [ {{#classes}} { ”category”:”{{cat}}”,”score”:

{{prob}} } {{^last}},{{/last}}{{/classes}} ] {{/predictions}}

{{/body}} }”

}

上述模版可以使監督學(xué)習分類(lèi)結果直接輸入Elasticsearch并生成索引,詳情見(jiàn)http://www.deepdetect.com/tutorials/es-image-classifier 。注意到network對象,其POST到輸出服務(wù)器,這個(gè)對象也可以用在input connector連接遠程輸入源。

上面的模版是一個(gè)典型的DeepDetect服務(wù)器監督分類(lèi)JSON輸出:

“body”: {

“predictions”: {

“classes”: [

{

“cat”: “n03868863 oxygen mask”,

“prob”: 0.24278657138347626

},

],

“loss”: 0.0,

“uri”: “http://i.ytimg.com/vi/0vxOhd4qlnA/maxresdefault.jpg”

}

上述的例子在集成到已存項目管道是不需要“膠水”代碼,這很好的滿(mǎn)足了許多企業(yè)的需求。

下面快速瀏覽下mllib組件,包括Caffe和XGBoost:

// Caffe

“mllib”:{

gpu:true,

net:{

batch_size:128

},

solver: {

test_interval:1000,

iterations:16000,

base_lr:0.01,

solver_type:SGD

}

}

// XGBoost

mllib: {

iterations: 100,

objective: multi:softprob

}

對于Caffe的例子,服務(wù)器使用了GPU,其他參數包括solver和learning rate等。對于XGBoost例子,參數iterations和objective被設置。

接下來(lái)重要的部分是數據預測,觀(guān)察機器學(xué)習服務(wù)生命周期重要的是基于數據進(jìn)行預測:

curl -X POST 'http://localhost:8080/predict' -d

'{service:covert,parameters:{input:

{id:Id,”separator”:,}},data:[test.csv]}'

這里mllib部分省略掉了,有時(shí)在深度網(wǎng)絡(luò )中抽取特征時(shí)mllib是有用的。在非監督學(xué)習中是相似的,輸出是一個(gè)張量,而不是一個(gè)類(lèi)或者回歸對象:

mllib:{extract_layer:pool5/7x7_s1}

最后總結,這歌機器學(xué)習API的核心點(diǎn):

可讀性:所有的數據結構是簡(jiǎn)單、人性化的;

通用性:監督學(xué)習服務(wù)和無(wú)監督學(xué)習服務(wù)的通用API;

REST風(fēng)格和可編程的API:這個(gè)API通過(guò)網(wǎng)絡(luò )獲取,但保留C++原有標志;

“虛構”性;能夠很容易的學(xué)習增加的特征和資源,比如,為多個(gè)預測實(shí)現服務(wù)鏈。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>