Newer
Older
#ifndef LIB4NEURO_NEURALNETWORKSERIALIZATION_H
#define LIB4NEURO_NEURALNETWORKSERIALIZATION_H
Martin Beseda
committed
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_real_distribution.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/export.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/shared_ptr.hpp>
Martin Beseda
committed
#include "NeuralNetwork.h"
#include "Neuron/NeuronSerialization.h"
#include "Neuron/NeuronBinarySerialization.h"
#include "Neuron/NeuronConstantSerialization.h"
#include "Neuron/NeuronLinearSerialization.h"
#include "Neuron/NeuronLogisticSerialization.h"
#include "NetConnection/ConnectionFunctionGeneralSerialization.h"
#include "NetConnection/ConnectionFunctionIdentitySerialization.h"
Martin Beseda
committed
namespace lib4neuro {
struct NeuralNetwork::access {
template<class Archive>
static void serialize(Archive &ar, NeuralNetwork &nn, const unsigned int version) {
ar & nn.neurons;
ar & nn.input_neuron_indices;
ar & nn.output_neuron_indices;
ar & nn.connection_list;
ar & nn.neuron_biases;
ar & nn.neuron_bias_indices;
ar & nn.neuron_potentials;
ar & nn.connection_weights;
ar & nn.inward_adjacency;
ar & nn.outward_adjacency;
ar & nn.neuron_layers_feedforward;
ar & nn.neuron_layers_feedbackward;
ar & nn.layers_analyzed;
ar & nn.delete_weights;
ar & nn.delete_biases;
ar & nn.normalization_strategy;
Martin Beseda
committed
}
};
}
Martin Beseda
committed
namespace boost {
namespace serialization {
/**
* Serialization function
* @tparam Archive Boost library template
* @param ar Boost parameter - filled automatically during serialization!
* @param ds NeuralNetwork instance
* @param version Boost parameter - filled automatically during serialization!
*/
template<class Archive>
Martin Beseda
committed
void serialize(Archive & ar, lib4neuro::NeuralNetwork & nn, const unsigned int version)
Martin Beseda
committed
{
Martin Beseda
committed
lib4neuro::NeuralNetwork::access::serialize(ar, nn, version);
Martin Beseda
committed
}
} // namespace serialization
} // namespace boost
#endif //LIB4NEURO_NEURALNETWORKSERIALIZATION_H