|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Sep 2013
Messaggi: 2
|
Problema rete neurale Encog
salve a tutti, per iniziare sono nuovo di questo forum, spero di non aver sbagliato sezione, XD.
io ho un problema con un rete neruale, la mai rete deve prendere un set di 39 valori iningresso e restituirmene 3 in uscita, ho costruito la rete con 39 neuroni in ingresso du livelli nascsti con 75 e 50 neuroni e 3 neuroni d'uscita, ho provato ad addestrare la rete con circa 200 tipi di ingresso uscita ma intanto l'errore che mi da è spropositato, e circa 7750, e poi ho notota che comunque l'addestri , cioe con qualsiasi tipo di ingresso uscita, la risposta della rete è sempre un numero molto vicino a 1. grazie per l'attenzione, attendo la risposta con impazione , aiutatemi devo finire il lavoro entro dopo domani perchè devo consegare la tesi sono disperato ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
"per me è la cipolla" cit.
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Sep 2013
Messaggi: 2
|
intanto cheido scusa ,questo è il codice, sostanzialmente non so se ho sbagliato a costruire la rete, se ho sbagliato ad addestrarla, se devo impostare in qualche modo il neurone di output perchè non mi dia solo 1 come segnale di uscita.
qualsiasi aiuto è ben acceto. grazie ancora. public static void main(final String args[]) { /*double[][] tmp=new double[In.length][20]; for(int i =0;i< In.length;i++){ for (int j=0; j<In[i].length;j++){ if(j<tmp[i].length){ tmp[i][j]=In[i][j]; } } }*/ // create a neural network, without using a factory BasicNetwork network = new BasicNetwork(); network.addLayer(new BasicLayer(null,false,39));//TODO network.addLayer(new BasicLayer(new ActivationSigmoid(),true,75)); network.addLayer(new BasicLayer(new ActivationSigmoid(),true,40)); network.addLayer(new BasicLayer(new ActivationSigmoid(),true,3)); network.getStructure().finalizeStructure(); network.reset(); /*BasicNetwork network = new BasicNetwork(); network.addLayer(new BasicLayer(39));//TODO //network.addLayer(new BasicLayer(64)); network.addLayer(new BasicLayer(15)); //network.addLayer(new BasicLayer(64)); //network.addLayer(new BasicLayer(40)); network.addLayer(new BasicLayer(1)); network.getStructure().finalizeStructure(); network.reset(); */ // create training data MLDataSet trainingSet = new BasicMLDataSet (INPUT,OUTPUT); //Load a network: File f=new File("C:/Users/Imperator6/Desktop/prova NN/Test"); EncogDirectoryPersistence.saveObject(f, network); //network=(BasicNetwork) EncogDirectoryPersistence.loadObject(f); // train the neural network final MLTrain train = new Backpropagation(network, trainingSet,0.3,0.7); int epoch = 1; do { train.iteration(); System.out .println("Epoch #" + epoch + " Error:" + train.getError()); epoch++; } while(train.getError() >10&& epoch<10000); //EncogPersistedCollection encog = new EncogPersistedCollection(MarketLoaderStrategy.LoadedConfig.FILENAME, FileMode.Open); /*Load a network: EncogPersistedCollection encog = new EncogPersistedCollection(MarketLoaderStrategy.LoadedConfig.FILENAME, FileMode.Open); BasicNetwork network = (BasicNetwork)encog.Find(MarketLoaderStrategy.LoadedConfig.MARKET_NETWORK); Save a network: Just replace the .Find to .Save . Then you can just load / save */ // test the neural network System.out.println("Neural Network Results:"); for(MLDataPair pair: trainingSet ) { final MLData output = network.compute(pair.getInput()); System.out.println(pair.getInput().getData(0) + "," + pair.getInput().getData(1)+pair.getInput().getData(2) +" ,max: "+output.getData(2)+",med: "+output.getData(0)+", min: "+output.getData(1)+ " Max" + pair.getIdeal().getData(0)+" Min "+pair.getIdeal().getData(1)); } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:44.