저는 Machine Learning에 익숙하지 않습니다. 이미지를 사용하여 객체를 분류하는 Java 응용 프로그램을 만들고 있습니다. 저는 40 개의 입력 뉴런과 n 개의 출력 뉴런을 가지고 있습니다 (훈련 데이터의 수에 따라 다릅니다). Encural을 Neural Network의 프레임 워크로 사용했습니다. 데이터를 성공적으로 교육 할 수 있었지만 네트워크를 테스트 할 때 제대로 작동하지 않는 것 같습니다. 개체를 올바르게 분류 할 수 없습니다.신경망 분류기 (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