12 #ifndef MLPACK_METHODS_ANN_VISITOR_LOSS_VISITOR_IMPL_HPP 13 #define MLPACK_METHODS_ANN_VISITOR_LOSS_VISITOR_IMPL_HPP 22 template<
typename LayerType>
25 return LayerLoss(layer);
30 return layer.apply_visitor(*
this);
34 inline typename std::enable_if<
35 !HasLoss<T, double(T::*)()>::value &&
36 !HasModelCheck<T>::value,
double>::type
37 LossVisitor::LayerLoss(T* )
const 43 inline typename std::enable_if<
44 HasLoss<T, double(T::*)()>::value &&
45 !HasModelCheck<T>::value,
double>::type
46 LossVisitor::LayerLoss(T* layer)
const 52 inline typename std::enable_if<
53 !HasLoss<T, double(T::*)()>::value &&
54 HasModelCheck<T>::value,
double>::type
55 LossVisitor::LayerLoss(T* layer)
const 57 for (
size_t i = 0; i < layer->Model().size(); ++i)
60 layer->Model()[layer->Model().size() - 1 - i]);
72 inline typename std::enable_if<
73 HasLoss<T, double(T::*)()>::value &&
74 HasModelCheck<T>::value,
double>::type
75 LossVisitor::LayerLoss(T* layer)
const 77 double loss = layer->Loss();
81 for (
size_t i = 0; i < layer->Model().size(); ++i)
84 layer->Model()[layer->Model().size() - 1 - i]);
double operator()(LayerType *layer) const
Return the Loss.
Definition: loss_visitor_impl.hpp:23
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
LossVisitor exposes the Loss() method of the given module.
Definition: loss_visitor.hpp:26