2016-03-15 38 views
0

我有一個大的S3水桶充滿了4種不同類型的動物的照片。我進入ML的目的是看看我是否能夠成功地讓Deep Learning 4 Java (DL4J)顯示出這四種物種之一的新的任意照片,並讓它一致地,正確地猜測它是哪種動物。ML和DL4J通過例子的階段

理解是,我必須先執行「訓練階段」,其有效地建立起一個由來自兩個這個S3桶衍生節點和權重的(內存)神經網絡(輸入數據)和我自己編碼和使用DL4J庫。

經過培訓後(意思是,一旦我在內存中的神經網絡建立起來的),然後我瞭解是,我可以再輸入零個或多個「測試階段」在這裏我給一個新的形象,輸入,讓程序決定它認爲圖像是什麼類型的動物,然後手動將輸出標記爲正確(程序猜對)或修正錯誤(程序猜對錯誤,順便說一句,所以的正確答案)。我的瞭解是這些測試階段應該有助於調整算法並最大限度地減少錯誤。

最後,這是我的理解庫就可以在現場「生產階段」下使用,即該方案只是應對圖像作爲輸入和決策,以它認爲他們。

這一切要問:是我對ML和DL4J的基本方法學校正的理解,還是我以任何方式誤導?

回答

1

培訓:這是任何框架。您也可以使用基於Java的SerializationUtils來持久化神經網絡,或者在新版本中也可以使用ModelSerializer。

這是一個比「它可以做x?」更集成的遊戲嗎?

DL4j可以與卡夫卡/火花流媒體整合,並進行在線/迷你批量學習。

神經網絡可嵌入生產環境。

我在這裏唯一的提示是確保你有相同的數據管道進行培訓和測試。

這主要是爲了確保您正在訓練的數據與測試數據的一致性。

和小批量學習一樣,如果您正在進行小批量/在線學習,或者如果您正在整個數據集一次進行訓練,則確保您有小批次(真)(默認)。

我也建議使用StandardScalar(https://github.com/deeplearning4j/nd4j/blob/master/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/dataset/api/iterator/StandardScaler.java)或周圍的數據持久化的全球統計類似的東西。大部分數據管道將取決於您用於構建數據管道的庫。

我會假設你想以某種方式規範你的數據。

+0

真棒回答,感謝@Adam吉布森(+1) - 我想這是我掛斷:*列車* *對比測試*的定義。這聽起來像我在我的問題中解釋爲「**培訓**」和「**測試階段**」的一部分是DL4J(可能整個ML社區)稱爲「*培訓*」 ,而我所說的「**生產階段**」實際上就是ML/DL4J人們所稱的「*測試*」。你可否確認?!再次感謝! – smeeb

+0

其實它看起來像是已經[在這裏解釋]模板慄(http://stats.stackexchange.com/a/19051) - 我很好去,再次感謝澄清! – smeeb