serializatioin / deserialization and tests

This commit is contained in:
2016-04-06 15:54:47 +02:00
parent adb6708b39
commit 17cbf5effe
28 changed files with 437 additions and 280 deletions

View File

@@ -3,15 +3,17 @@
#include <NeuralNetwork/ActivationFunction/HyperbolicTangent.h>
#include <NeuralNetwork/ActivationFunction/Linear.h>
#include <iostream>
#include <NeuralNetwork/Network.h>
#include <cassert>
#include <chrono>
union {
__m128 v; // SSE 4 x float vector
float a[4]; // scalar array of 4 floats
} U;
NEURAL_NETWORK_INIT();
int main() {
{
NeuralNetwork::ActivationFunction::Heaviside h(1.0);
@@ -68,5 +70,34 @@ int main() {
assert(s(1.0) < 0.7001);
}
{
NeuralNetwork::ActivationFunction::Linear l(2.5);
const std::string tmp = l.serialize().serialize();
NeuralNetwork::ActivationFunction::ActivationFunction* deserialized = NeuralNetwork::ActivationFunction::Factory::deserialize(l.serialize()).release();
assert(tmp == deserialized->serialize().serialize());
delete deserialized;
}
{
NeuralNetwork::ActivationFunction::Heaviside l(2.5);
const std::string tmp = l.serialize().serialize();
NeuralNetwork::ActivationFunction::ActivationFunction* deserialized = NeuralNetwork::ActivationFunction::Factory::deserialize(l.serialize()).release();
assert(tmp == deserialized->serialize().serialize());
delete deserialized;
}
{
NeuralNetwork::ActivationFunction::HyperbolicTangent l(2.5);
const std::string tmp = l.serialize().serialize();
NeuralNetwork::ActivationFunction::ActivationFunction* deserialized = NeuralNetwork::ActivationFunction::Factory::deserialize(l.serialize()).release();
assert(tmp == deserialized->serialize().serialize());
delete deserialized;
}
{
NeuralNetwork::ActivationFunction::Sigmoid l(2.5);
const std::string tmp = l.serialize().serialize();
NeuralNetwork::ActivationFunction::ActivationFunction* deserialized = NeuralNetwork::ActivationFunction::Factory::deserialize(l.serialize()).release();
assert(tmp == deserialized->serialize().serialize());
delete deserialized;
}
return 0;
}