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) {
Martin Beseda
committed
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;

Michal Kravcenko
committed
ar & nn.___ind1;
ar & nn.___ind2;
ar & nn.___ind_m1;
ar & nn.___ind_m2;
ar & nn.___val_m1;
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>
void serialize(Archive& ar,
lib4neuro::NeuralNetwork& nn,
const unsigned int version) {
lib4neuro::NeuralNetwork::access::serialize(ar,
nn,
version);
Martin Beseda
committed
}
} // namespace serialization
} // namespace boost
#endif //LIB4NEURO_NEURALNETWORKSERIALIZATION_H