serialization.hpp
Go to the documentation of this file.
1 
9 #ifndef MLPACK_METHODS_ANN_LAYER_SERIALIZATION_HPP
10 #define MLPACK_METHODS_ANN_LAYER_SERIALIZATION_HPP
11 
12 #define CEREAL_REGISTER_MLPACK_LAYERS(...) \
13  CEREAL_REGISTER_TYPE(mlpack::ann::Layer<__VA_ARGS__>); \
14  CEREAL_REGISTER_TYPE(mlpack::ann::MultiLayer<__VA_ARGS__>); \
15  CEREAL_REGISTER_TYPE(mlpack::ann::RecurrentLayer<__VA_ARGS__>); \
16  CEREAL_REGISTER_TYPE(mlpack::ann::AdaptiveMeanPoolingType<__VA_ARGS__>); \
17  CEREAL_REGISTER_TYPE(mlpack::ann::AdaptiveMaxPoolingType<__VA_ARGS__>); \
18  CEREAL_REGISTER_TYPE(mlpack::ann::AddType<__VA_ARGS__>); \
19  CEREAL_REGISTER_TYPE(mlpack::ann::AddMergeType<__VA_ARGS__>); \
20  CEREAL_REGISTER_TYPE(mlpack::ann::AlphaDropoutType<__VA_ARGS__>); \
21  /* Base layers from base_layer.hpp. */ \
22  CEREAL_REGISTER_TYPE(mlpack::ann::SigmoidType<__VA_ARGS__>); \
23  CEREAL_REGISTER_TYPE(mlpack::ann::ReLUType<__VA_ARGS__>); \
24  CEREAL_REGISTER_TYPE(mlpack::ann::TanHType<__VA_ARGS__>); \
25  CEREAL_REGISTER_TYPE(mlpack::ann::SoftPlusType<__VA_ARGS__>); \
26  CEREAL_REGISTER_TYPE(mlpack::ann::HardSigmoidType<__VA_ARGS__>); \
27  CEREAL_REGISTER_TYPE(mlpack::ann::SwishType<__VA_ARGS__>); \
28  CEREAL_REGISTER_TYPE(mlpack::ann::MishType<__VA_ARGS__>); \
29  CEREAL_REGISTER_TYPE(mlpack::ann::LiSHTType<__VA_ARGS__>); \
30  CEREAL_REGISTER_TYPE(mlpack::ann::GELUType<__VA_ARGS__>); \
31  CEREAL_REGISTER_TYPE(mlpack::ann::ElliotType<__VA_ARGS__>); \
32  CEREAL_REGISTER_TYPE(mlpack::ann::ElishType<__VA_ARGS__>); \
33  CEREAL_REGISTER_TYPE(mlpack::ann::GaussianType<__VA_ARGS__>); \
34  /* (end of base_layer.hpp) */ \
35  CEREAL_REGISTER_TYPE(mlpack::ann::BatchNormType<__VA_ARGS__>); \
36  CEREAL_REGISTER_TYPE(mlpack::ann::ConcatType<__VA_ARGS__>); \
37  CEREAL_REGISTER_TYPE(mlpack::ann::ConcatenateType<__VA_ARGS__>); \
38  CEREAL_REGISTER_TYPE(mlpack::ann::ConvolutionType< \
39  mlpack::ann::NaiveConvolution<mlpack::ann::ValidConvolution>, \
40  mlpack::ann::NaiveConvolution<mlpack::ann::FullConvolution>, \
41  mlpack::ann::NaiveConvolution<mlpack::ann::ValidConvolution>, \
42  __VA_ARGS__>); \
43  CEREAL_REGISTER_TYPE(mlpack::ann::CELUType<__VA_ARGS__>); \
44  CEREAL_REGISTER_TYPE(mlpack::ann::DropConnectType<__VA_ARGS__>); \
45  CEREAL_REGISTER_TYPE(mlpack::ann::DropoutType<__VA_ARGS__>); \
46  CEREAL_REGISTER_TYPE(mlpack::ann::ELUType<__VA_ARGS__>); \
47  CEREAL_REGISTER_TYPE(mlpack::ann::GroupedConvolutionType< \
48  mlpack::ann::NaiveConvolution<mlpack::ann::ValidConvolution>, \
49  mlpack::ann::NaiveConvolution<mlpack::ann::FullConvolution>, \
50  mlpack::ann::NaiveConvolution<mlpack::ann::ValidConvolution>, \
51  __VA_ARGS__>); \
52  CEREAL_REGISTER_TYPE(mlpack::ann::IdentityType<__VA_ARGS__>); \
53  CEREAL_REGISTER_TYPE(mlpack::ann::LeakyReLUType<__VA_ARGS__>); \
54  CEREAL_REGISTER_TYPE(mlpack::ann::Linear3DType<__VA_ARGS__>); \
55  CEREAL_REGISTER_TYPE(mlpack::ann::LinearType<__VA_ARGS__>); \
56  CEREAL_REGISTER_TYPE(mlpack::ann::LinearNoBiasType<__VA_ARGS__>); \
57  CEREAL_REGISTER_TYPE(mlpack::ann::LogSoftMaxType<__VA_ARGS__>); \
58  CEREAL_REGISTER_TYPE(mlpack::ann::LSTMType<__VA_ARGS__>); \
59  CEREAL_REGISTER_TYPE(mlpack::ann::MaxPoolingType<__VA_ARGS__>); \
60  CEREAL_REGISTER_TYPE(mlpack::ann::MeanPoolingType<__VA_ARGS__>); \
61  CEREAL_REGISTER_TYPE(mlpack::ann::NoisyLinearType<__VA_ARGS__>); \
62  CEREAL_REGISTER_TYPE(mlpack::ann::PaddingType<__VA_ARGS__>); \
63  CEREAL_REGISTER_TYPE(mlpack::ann::RBFType<__VA_ARGS__>); \
64  CEREAL_REGISTER_TYPE(mlpack::ann::SoftmaxType<__VA_ARGS__>); \
65 
67 
68 #endif
#define CEREAL_REGISTER_MLPACK_LAYERS(...)