
200
|
第五章:打造深度網路
輸入圖片的載入與向量化
在這個例子中,我們使用了一個名為
MnistDataSetIterator
的自定義資料集迭代器。這是
因為 MNIST 資料集採用的是一種自定義的二進位格式
—
相應的檔案並不是我們一般
所預期的那種 JPG 或 PNG 檔案。為了讓這個例子更簡單,你可以假設背後已執行過某
些必要的函數,而原始圖片資料已被提取到 NDArray 中,可以讓 DL4J 進行訓練了。下
面的程式碼片段顯示的是
MnistDataSetIterator
實際被使用的情況:
DataSetIterator mnistTrain = new MnistDataSetIterator(batchSize,true,12345);
DataSetIterator mnistTest = new MnistDataSetIterator(batchSize,false,12345);
這段程式碼會把訓練組資料與測試組資料載入到各自的迭代器之中。這段程式還會自動
從網際網路下載 MNIST 資料集,並解壓縮給本機使用。
DL4J 的 LeNet 網路架構
我們可以再次看到,同一個
MultiLayerConfiguration
物件再度被用來描述網路架構,做法
上與我們之前在多層感知器範例中所看到的很類似。不過要注意的是,下面程式碼範例
中所顯示的網路具有更多層,而且所採用的層型態與多層感知器範例中的層型態並不
相同:
/*
構建神經網路
*/
log.info("Build model...."); ...