12 #ifndef MLPACK_METHODS_ANN_VISITOR_OUTPUT_WIDTH_VISITOR_IMPL_HPP 13 #define MLPACK_METHODS_ANN_VISITOR_OUTPUT_WIDTH_VISITOR_IMPL_HPP 22 template<
typename LayerType>
25 return LayerOutputWidth(layer);
30 return layer.apply_visitor(*
this);
34 inline typename std::enable_if<
35 !HasInputWidth<T, size_t&(T::*)()>::value &&
36 !HasModelCheck<T>::value,
size_t>::type
37 OutputWidthVisitor::LayerOutputWidth(T* )
const 43 inline typename std::enable_if<
44 HasInputWidth<T, size_t&(T::*)()>::value &&
45 !HasModelCheck<T>::value,
size_t>::type
46 OutputWidthVisitor::LayerOutputWidth(T* layer)
const 48 return layer->OutputWidth();
52 inline typename std::enable_if<
53 !HasInputWidth<T, size_t&(T::*)()>::value &&
54 HasModelCheck<T>::value,
size_t>::type
55 OutputWidthVisitor::LayerOutputWidth(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 HasInputWidth<T, size_t&(T::*)()>::value &&
74 HasModelCheck<T>::value,
size_t>::type
75 OutputWidthVisitor::LayerOutputWidth(T* layer)
const 77 size_t outputWidth = layer->OutputWidth();
81 for (
size_t i = 0; i < layer->Model().size(); ++i)
84 layer->Model()[layer->Model().size() - 1 - i]);
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
OutputWidthVisitor exposes the OutputWidth() method of the given module.
Definition: output_width_visitor.hpp:27
size_t operator()(LayerType *layer) const
Return the output width.
Definition: output_width_visitor_impl.hpp:23