14 #ifndef MLPACK_METHODS_ANN_VISITOR_WEIGHT_SIZE_VISITOR_HPP 15 #define MLPACK_METHODS_ANN_VISITOR_WEIGHT_SIZE_VISITOR_HPP 20 #include <boost/variant.hpp> 32 template<
typename LayerType>
38 template<
typename T,
typename P>
39 typename std::enable_if<
40 !HasParametersCheck<T, P&(T::*)()>::value &&
41 !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
46 template<
typename T,
typename P>
47 typename std::enable_if<
48 !HasParametersCheck<T, P&(T::*)()>::value &&
49 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
54 template<
typename T,
typename P>
55 typename std::enable_if<
56 HasParametersCheck<T, P&(T::*)()>::value &&
57 !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
62 template<
typename T,
typename P>
63 typename std::enable_if<
64 HasParametersCheck<T, P&(T::*)()>::value &&
65 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
73 #include "weight_size_visitor_impl.hpp" size_t operator()(LayerType *layer) const
Return the number of weights.
Linear algebra utility functions, generally performed on matrices or vectors.
WeightSizeVisitor returns the number of weights of the given module.
std::enable_if< !HasParametersCheck< T, P &(T::*)()>::value &&!HasModelCheck< T, std::vector< LayerTypes > &(T::*)()>::value, size_t >::type LayerSize(T *layer, P &output) const
If the module doesn't implement the Parameters() or Model() function return 0.