13 #ifndef MLPACK_METHODS_ANN_VISITOR_WEIGHT_SET_VISITOR_HPP 14 #define MLPACK_METHODS_ANN_VISITOR_WEIGHT_SET_VISITOR_HPP 19 #include <boost/variant.hpp> 34 template<
typename LayerType>
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
53 template<
typename T,
typename P>
54 typename std::enable_if<
55 !HasParametersCheck<T, P&(T::*)()>::value &&
56 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
60 template<
typename T,
typename P>
61 typename std::enable_if<
62 HasParametersCheck<T, P&(T::*)()>::value &&
63 !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
68 template<
typename T,
typename P>
69 typename std::enable_if<
70 HasParametersCheck<T, P&(T::*)()>::value &&
71 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
79 #include "weight_set_visitor_impl.hpp"
Linear algebra utility functions, generally performed on matrices or vectors.
std::enable_if< !HasParametersCheck< T, P &(T::*)()>::value &&!HasModelCheck< T, std::vector< LayerTypes > &(T::*)()>::value, size_t >::type LayerSize(T *layer, P &&input) const
Do not update the parameters if the module doesn't implement the Parameters() or Model() function...
arma::mat && weight
The parameters set.
WeightSetVisitor(arma::mat &&weight, const size_t offset=0)
Update the parameters given the parameters set and offset.
const size_t offset
The parameters offset.
size_t operator()(LayerType *layer) const
Update the parameters set.
WeightSetVisitor update the module parameters given the parameters set.