neuralpp/examples/adderFromScratch.cpp

48 lines
1.1 KiB
C++
Raw Normal View History

2009-02-18 00:19:29 +01:00
/**
* This source creates a new neural network able to sum two integer numbers,
* creating the XML containing the training input set on the fly.
*
* by BlackLight, 2009
*/
#include <iostream>
#include <neural++.hpp>
2009-02-18 00:19:29 +01:00
using namespace neuralpp;
int main() {
2009-08-09 19:53:21 +02:00
NeuralNet net(3, 3, 1, 0.005, 1000);
2009-02-18 00:19:29 +01:00
string xml;
double tmp;
2009-02-18 00:19:29 +01:00
// XML initialization. Then, I say XML that 2+3=5, 3+3=6, 5+4=9
// Strings' format is "input1,input2,...,inputn;output1,output2,...,outputm
NeuralNet::initXML(xml);
2009-08-09 19:53:21 +02:00
xml += NeuralNet::XMLFromSet(0, "2,3,4;9");
xml += NeuralNet::XMLFromSet(1, "3,3,1;7");
xml += NeuralNet::XMLFromSet(2, "5,4,2;11");
2009-02-18 00:19:29 +01:00
NeuralNet::closeXML(xml);
2009-08-09 20:49:59 +02:00
cout << "xml:\n" << xml << endl;
2009-02-18 00:19:29 +01:00
net.train(xml, NeuralNet::str);
vector<double> v;
2009-02-18 00:19:29 +01:00
cout << "Network status: trained\n\n";
cout << "First number to add: ";
cin >> tmp;
v.push_back(tmp);
cout << "Second number to add: ";
cin >> tmp;
v.push_back(tmp);
2009-08-09 19:53:21 +02:00
cout << "Third number to add: ";
cin >> tmp;
v.push_back(tmp);
net.setInput(v);
net.propagate();
cout << "Output: " << net.getOutput() << endl;
2009-02-18 00:19:29 +01:00
return 0;
}