mlpack  master
save_output_parameter_visitor.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_METHODS_ANN_VISITOR_SAVE_OUTPUT_PARAMETER_VISITOR_HPP
14 #define MLPACK_METHODS_ANN_VISITOR_SAVE_OUTPUT_PARAMETER_VISITOR_HPP
15 
18 
19 #include <boost/variant.hpp>
20 
21 namespace mlpack {
22 namespace ann {
23 
28 class SaveOutputParameterVisitor : public boost::static_visitor<void>
29 {
30  public:
32  SaveOutputParameterVisitor(std::vector<arma::mat>&& parameter);
33 
35  template<typename LayerType>
36  void operator()(LayerType* layer) const;
37 
38  private:
40  std::vector<arma::mat>&& parameter;
41 
44  template<typename T>
45  typename std::enable_if<
46  !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
47  OutputParameter(T* layer) const;
48 
51  template<typename T>
52  typename std::enable_if<
53  HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value, void>::type
54  OutputParameter(T* layer) const;
55 };
56 
57 } // namespace ann
58 } // namespace mlpack
59 
60 // Include implementation.
61 #include "save_output_parameter_visitor_impl.hpp"
62 
63 #endif
SaveOutputParameterVisitor(std::vector< arma::mat > &&parameter)
Save the output parameter into the given parameter set.
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: binarize.hpp:18
void operator()(LayerType *layer) const
Save the output parameter.
std::vector< arma::mat > && parameter
The parameter set.
SaveOutputParameterVisitor saves the output parameter into the given parameter set.
std::enable_if< !HasModelCheck< T, std::vector< LayerTypes > &(T::*)()>::value, void >::type OutputParameter(T *layer) const
Save the output parameter for a module which doesn&#39;t implement the Model() function.