姓名:樊松松
學(xué)號(hào):17021211234
轉(zhuǎn)載自https://www.leiphone.com/news/201806/puk2y8oSPdiEFFrW.html,有刪節(jié)
【嵌牛導(dǎo)讀】:這次簡(jiǎn)單的試驗(yàn)后,你應(yīng)當(dāng)能夠使用 MXNet Scala API 接口創(chuàng)建一個(gè)圖像分類器。
【嵌牛鼻子】:?MXNet Scala API 接口 圖像分類器
【嵌牛提問(wèn)】:使用?MXNet Scala API 接口創(chuàng)建的圖像分類器有哪些優(yōu)點(diǎn)?
【嵌牛正文】:
隨著 MXNet 1.2.0 版本的發(fā)布,新的 MXNet Scala API 接口也發(fā)布了。這次發(fā)布的 Scala,里面的推理應(yīng)用程序致力于優(yōu)化開(kāi)發(fā)者體驗(yàn)。Scala 是一個(gè)通用目的程序語(yǔ)言,支持功能性編程和較強(qiáng)的靜態(tài)類型系統(tǒng),它被用于平臺(tái)的高度分布式處理像 Apache Spark。
現(xiàn)在,你們有了新的 Scala API 接口,準(zhǔn)備自己試驗(yàn)下。首先你們需要使用 mxnet-full 包來(lái)搭建環(huán)境,然后你們可以在圖像分類的實(shí)例和目標(biāo)偵測(cè)的實(shí)例上嘗試下。(目標(biāo)偵測(cè)的實(shí)例我們將在下一次的博客中公布演示)。
環(huán)境搭建 (Linux/OSX)
使用 maven 來(lái)安裝 mxnet-full 包。在 pom 文件里添加屬性。請(qǐng)轉(zhuǎn)換 <你的平臺(tái)> 到你們正在使用的平臺(tái)。(OSX: osx-x86_64-cpu, Linux: linux-x86_64-cpu/gpu)
如果你正在使用 IntelliJ,你應(yīng)看到安裝包已被導(dǎo)入。你也可以根據(jù)這個(gè)教程用 MXNet Scala 包來(lái)設(shè)置 IntelliJ。
圖像分類實(shí)例
在這部分,你將使用預(yù)訓(xùn)練的圖像分類模型做推理。這個(gè)例子使用了 ResNet152 模型。你可以使用這個(gè)腳本來(lái)下載這個(gè)模型文件。
以下是重建這個(gè)例實(shí)例需要導(dǎo)入的庫(kù)。
第一步:創(chuàng)建運(yùn)行這個(gè)實(shí)例的主要功能?
這里的環(huán)境意思是定義這個(gè)模型,代碼將會(huì)運(yùn)行。如果你想用 GPU(s) 來(lái)運(yùn)行的話,你可以將這行代碼改成 context.gpu()。本實(shí)例,我們使用了這副圖片。
然后給模型添加路徑并添加使用 API 接口做測(cè)試的圖像。
?第二步:加載模型并做推
以下代碼是之前代碼塊的延續(xù):
需要用一個(gè)輸入描述符來(lái)定義輸入來(lái)源和模型配置。「數(shù)據(jù)」就是輸入數(shù)據(jù)的名字。輸入形狀是輸入圖像的形狀。輸入的矩陣是 224*224 像素大小的三個(gè)信道。
在我們挑選和整理好我們所有的輸入后,我們創(chuàng)建了一個(gè)圖像分類器目標(biāo),使用它來(lái)加載圖像。然后我們開(kāi)始在樣本圖像上做分類?!窼ome(5)」區(qū)域意思是我們將選取最準(zhǔn)確的前 5 個(gè)預(yù)測(cè)。這個(gè)區(qū)域是選擇性的,未分類順序的預(yù)測(cè)會(huì)是默認(rèn)選項(xiàng)。一旦完成這一步,我們只需打印顯示輸出。
結(jié)果?
結(jié)束上一步后,你將看到類似于以下的輸出(這兒我們使用了一張哈巴狗的圖像):

第一個(gè)元素是分類「n02110958 pug, pug-dog」,第二個(gè)值是由分類器決定的該分類的可信度值。