9 #ifndef MLPACK_METHODS_ANN_LAYER_SERIALIZATION_HPP 10 #define MLPACK_METHODS_ANN_LAYER_SERIALIZATION_HPP 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__>); \ 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__>); \ 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>, \ 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>, \ 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__>); \ #define CEREAL_REGISTER_MLPACK_LAYERS(...)