mlpack  master
reset_visitor.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_ANN_VISITOR_RESET_VISITOR_HPP
14 #define MLPACK_METHODS_ANN_VISITOR_RESET_VISITOR_HPP
15 
18 
19 #include <boost/variant.hpp>
20 
21 namespace mlpack {
22 namespace ann {
23 
27 class ResetVisitor : public boost::static_visitor<void>
28 {
29  public:
31  template<typename LayerType>
32  void operator()(LayerType* layer) const;
33 
34  private:
37  template<typename T>
38  typename std::enable_if<
39  HasResetCheck<T, void(T::*)()>::value &&
40  !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
41  ResetParameter(T* layer) const;
42 
45  template<typename T>
46  typename std::enable_if<
47  !HasResetCheck<T, void(T::*)()>::value &&
48  HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
49  ResetParameter(T* layer) const;
50 
53  template<typename T>
54  typename std::enable_if<
55  HasResetCheck<T, void(T::*)()>::value &&
56  HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
57  ResetParameter(T* layer) const;
58 
60  // the Reset() or Model() function.
61  template<typename T>
62  typename std::enable_if<
63  !HasResetCheck<T, void(T::*)()>::value &&
64  !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
65  ResetParameter(T* layer) const;
66 };
67 
68 } // namespace ann
69 } // namespace mlpack
70 
71 // Include implementation.
72 #include "reset_visitor_impl.hpp"
73 
74 #endif
void operator()(LayerType *layer) const
Execute the Reset() function.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: binarize.hpp:18
ResetVisitor executes the Reset() function.
std::enable_if< HasResetCheck< T, void(T::*)()>::value &&!HasModelCheck< T, std::vector< LayerTypes > &(T::*)()>::value, void >::type ResetParameter(T *layer) const
Execute the Reset() function for a module which implements the Reset() function.