資源簡(jiǎn)介
構(gòu)建CNN
LayerBuilder builder = new LayerBuilder();
builder.addLayer(Layer.buildInputLayer(new Size(28, 28)));
builder.addLayer(Layer.buildConvLayer(6, new Size(5, 5)));
builder.addLayer(Layer.buildSampLayer(new Size(2, 2)));
builder.addLayer(Layer.buildConvLayer(12, new Size(5, 5)));
builder.addLayer(Layer.buildSampLayer(new Size(2, 2)));
builder.addLayer(Layer.buildOutputLayer(10));
CNN cnn = new CNN(builder, 50);
運(yùn)行MNIST數(shù)據(jù)集
String fileName = "data/train.format";
Dataset dataset = Dataset.load(fileName, ",", 784);
cnn.train(dataset, 100);
Dataset testset = Dataset.load("data/test.format", ",", -1);
cnn.predict(testset, "data/test.predict");
計(jì)算精度可以達(dá)到97.8%。

代碼片段和文件信息
package?info.hb.ccn.main;
import?info.hb.cnn.core.CNN;
import?info.hb.cnn.core.CNN.layerBuilder;
import?info.hb.cnn.core.layer;
import?info.hb.cnn.core.layer.Size;
import?info.hb.cnn.data.DataSet;
import?info.hb.cnn.utils.ConcurentRunner;
public?class?CNNMnist?{
private?static?final?String?MODEL_NAME?=?“mnist/model/model.cnn“;
private?static?final?String?TRAIN_DATA?=?“mnist/train.format“;
private?static?final?String?TEST_DATA?=?“mnist/test.format“;
private?static?final?String?TEST_PREDICT?=?“mnist/test.predict“;
public?static?void?main(String[]?args)?{
System.err.println(“訓(xùn)練階段:“);
runTrain();
System.err.println(“測(cè)試階段:“);
runTest();
ConcurentRunner.stop();
}
public?static?void?runTrain()?{
//?構(gòu)建網(wǎng)絡(luò)層次結(jié)構(gòu)
layerBuilder?builder?=?new?layerBuilder();
builder.addlayer(layer.buildInputlayer(new?Size(28?28)));?//?輸入層輸出map大小為28×28
builder.addlayer(layer.buildConvlayer(6?new?Size(5?5)));?//?卷積層輸出map大小為24×2424=28+1-5
builder.addlayer(layer.buildSamplayer(new?Size(2?2)));?//?采樣層輸出map大小為12×1212=24/2
builder.addlayer(layer.buildConvlayer(12?new?Size(5?5)));?//?卷積層輸出map大小為8×88=12+1-5
builder.addlayer(layer.buildSamplayer(new?Size(2?2)));?//?采樣層輸出map大小為4×44=8/2
builder.addlayer(layer.buildOutputlayer(10));
CNN?cnn?=?new?CNN(builder?10);
//?加載訓(xùn)練數(shù)據(jù)
DataSet?dataset?=?DataSet.load(TRAIN_DATA?““?784);
//?開始訓(xùn)練模型
cnn.train(dataset?5);
//?保存訓(xùn)練好的模型
cnn.saveModel(MODEL_NAME);
dataset.clear();
}
public?static?void?runTest()?{
//?加載訓(xùn)練好的模型
CNN?cnn?=?CNN.loadModel(MODEL_NAME);
//?加載測(cè)試數(shù)據(jù)
DataSet?testSet?=?DataSet.load(TEST_DATA?““?-1);
//?預(yù)測(cè)結(jié)果
cnn.predict(testSet?TEST_PREDICT);
testSet.clear();
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-08-21?08:14??cnn-master\
?????文件??????????45??2016-08-21?08:14??cnn-master\.gitignore
?????文件?????????754??2016-08-21?08:14??cnn-master\README.md
?????目錄???????????0??2016-08-21?08:14??cnn-master\mnist\
?????文件?????????208??2016-08-21?08:14??cnn-master\mnist\readme.md
?????文件????43904000??2016-08-21?08:14??cnn-master\mnist\test.format
?????文件????18841570??2016-08-21?08:14??cnn-master\mnist\train.format
?????文件????????3024??2016-08-21?08:14??cnn-master\pom.xm
?????目錄???????????0??2016-08-21?08:14??cnn-master\speech\
?????目錄???????????0??2016-08-21?08:14??cnn-master\speech\model\
?????文件???????16718??2016-08-21?08:14??cnn-master\speech\model\model.cnn
?????文件???????31110??2016-08-21?08:14??cnn-master\speech\test.format
?????文件??????????86??2016-08-21?08:14??cnn-master\speech\test.label
?????文件??????????86??2016-08-21?08:14??cnn-master\speech\test.predict
?????文件??????144463??2016-08-21?08:14??cnn-master\speech\train.format
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\ccn\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\ccn\main\
?????文件????????1887??2016-08-21?08:14??cnn-master\src\main\java\info\hb\ccn\main\CNNMnist.java
?????文件????????1681??2016-08-21?08:14??cnn-master\src\main\java\info\hb\ccn\main\CNNSpeech.java
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\core\
?????文件???????14926??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\core\CNN.java
?????文件????????5893??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\core\la
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\data\
?????文件????????3714??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\data\DataSet.java
?????目錄???????????0??2016-08-21?08:14??cnn-master\src\main\java\info\hb\cnn\utils\
............此處省略17個(gè)文件信息
評(píng)論
共有 條評(píng)論