3
我是機器學習的新手,我正在研究一個Java應用程序,該應用程序使用它的圖像對對象進行分類。我有40個輸入神經元和n個輸出神經元(取決於訓練數據的數量)。我使用Encog作爲我的神經網絡的框架。我能夠成功地訓練數據,但在我測試網絡時,它似乎不能很好地工作。它無法正確分類對象。 下面是訓練部分:使用Encog的神經網絡分類器
BasicNetwork network = new BasicNetwork();
network.addLayer(new BasicLayer(null,true,i));
network.addLayer(new BasicLayer(new ActivationSigmoid(),true,h));
network.addLayer(new BasicLayer(new ActivationSigmoid(),false,o));
network.getStructure().finalizeStructure();
network.reset();
// train the neural network
final Backpropagation train = new Backpropagation(network, trainingSet, lr, 0.3);
train.fixFlatSpot(false);
w = new SwingWorker(){
@Override
protected Object doInBackground() throws Exception {
// learn the training set
int epoch = 1;
do {
train.iteration();
//System.out.println("Epoch #" + epoch + " Error:" + train.getError());
epoch++;
} while(train.getError() > me && !isStop);
isStop = false;
return null;
}
};
w.execute();
和檢測部位:
BasicNetwork network = (BasicNetwork) SerializeObject.load(new File("file/Weights.ser"));
MLData input = new BasicMLData(inputCount);
input.setData(in);
MLData output = network.compute(input);
for(int y = 0; y < output.size(); y++){
System.out.println(output.getData(y));
}
有什麼不對的培訓的一部分?如果我以正確的方式做事,我確實希望有人能指導我。
嗨,我想問你,你如何測試你的網絡與其他例子而不是訓練輸入?謝謝 – user2886091