12 #ifndef MLPACK_METHODS_ANN_VISITOR_WEIGHT_SET_VISITOR_IMPL_HPP 13 #define MLPACK_METHODS_ANN_VISITOR_WEIGHT_SET_VISITOR_IMPL_HPP 23 const size_t offset) :
30 template<
typename LayerType>
33 return LayerSize(layer, layer->OutputParameter());
38 return layer.apply_visitor(*
this);
41 template<
typename T,
typename P>
42 inline typename std::enable_if<
43 !HasParametersCheck<T, P&(T::*)()>::value &&
44 !HasModelCheck<T>::value,
size_t>::type
45 WeightSetVisitor::LayerSize(T* , P&& )
const 50 template<
typename T,
typename P>
51 inline typename std::enable_if<
52 !HasParametersCheck<T, P&(T::*)()>::value &&
53 HasModelCheck<T>::value,
size_t>::type
54 WeightSetVisitor::LayerSize(T* layer, P&& )
const 56 size_t modelOffset = 0;
57 for (
size_t i = 0; i < layer->Model().size(); ++i)
60 weight, modelOffset + offset), layer->Model()[i]);
66 template<
typename T,
typename P>
67 inline typename std::enable_if<
68 HasParametersCheck<T, P&(T::*)()>::value &&
69 !HasModelCheck<T>::value,
size_t>::type
70 WeightSetVisitor::LayerSize(T* layer, P&& )
const 72 layer->Parameters() = arma::mat(weight.memptr() + offset,
73 layer->Parameters().n_rows, layer->Parameters().n_cols,
false,
false);
75 return layer->Parameters().n_elem;
78 template<
typename T,
typename P>
79 inline typename std::enable_if<
80 HasParametersCheck<T, P&(T::*)()>::value &&
81 HasModelCheck<T>::value,
size_t>::type
82 WeightSetVisitor::LayerSize(T* layer, P&& )
const 84 layer->Parameters() = arma::mat(weight.memptr() + offset,
85 layer->Parameters().n_rows, layer->Parameters().n_cols,
false,
false);
87 size_t modelOffset = layer->Parameters().n_elem;
88 for (
size_t i = 0; i < layer->Model().size(); ++i)
91 weight, modelOffset + offset), layer->Model()[i]);
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
WeightSetVisitor(arma::mat &weight, const size_t offset=0)
Update the parameters given the parameters set and offset.
Definition: weight_set_visitor_impl.hpp:22
size_t operator()(LayerType *layer) const
Update the parameters set.
Definition: weight_set_visitor_impl.hpp:31