コード例 #1
0
void linearRegressionExample()
{
    // Load data into input/reference matrices
    //  divide into training set/validation set
    auto inputData     = loadInputData();
    auto referenceData = loadReferenceData();

    size_t inputCount   = inputData.size()[0];
    size_t inputSamples = inputData.size()[1];

    size_t trainingSamples   = 400;
    //size_t validationSamples = inputSamples - trainingSamples;

    auto trainingData      = slice(inputData,     {0, 0}, {inputCount, trainingSamples});
    auto trainingReference = slice(referenceData, {0, 0}, {1,          trainingSamples});

    auto validationData      = slice(inputData,     {0, trainingSamples}, {inputCount, inputSamples});
    auto validationReference = slice(referenceData, {0, trainingSamples}, {1,          inputSamples});

    setupParameters();

    // Create the network
    network::NeuralNetwork simpleNetwork;

    simpleNetwork.addLayer(std::make_unique<network::FeedForwardLayer>(inputCount, 1, matrix::DoublePrecision()));
    simpleNetwork.back()->setActivationFunction(network::ActivationFunctionFactory::create("NullActivationFunction"));
    simpleNetwork.setCostFunction(network::CostFunctionFactory::create("SumOfSquaresCostFunction"));
    simpleNetwork.initialize();

    // Train it
    simpleNetwork.train(trainingData, trainingReference);

    // Evaluate it on test set
    //auto trainingPredictions = simpleNetwork.runInputs(trainingData);

    //compare(trainingPredictions, trainingReference);

    // Evaluate it on validation set
    auto predictions = simpleNetwork.runInputs(validationData);

    compare(predictions, validationReference);

   //for(size_t sample = 0; sample < validationSamples; ++ sample)
    //{
    //    std::cout << sample << ", " << predictions(0, sample) << ", " << validationReference(0, sample) << "\n";
    //}
}
コード例 #2
0
void StrictMathTestCaseCos::setUp() {
	loadReferenceData(TESTSRC "/StrictMathTestCase/cos.ref");
}
コード例 #3
0
void StrictMathTestCaseATan::setUp() {
	loadReferenceData(TESTSRC "/StrictMathTestCase/atan.ref");
}