12 #ifndef MLPACK_METHODS_ANN_VISITOR_OUTPUT_HEIGHT_VISITOR_IMPL_HPP 13 #define MLPACK_METHODS_ANN_VISITOR_OUTPUT_HEIGHT_VISITOR_IMPL_HPP 22 template<
typename LayerType>
25 return LayerOutputHeight(layer);
30 return layer.apply_visitor(*
this);
34 inline typename std::enable_if<
35 !HasInputHeight<T, size_t&(T::*)()>::value &&
36 !HasModelCheck<T>::value,
size_t>::type
37 OutputHeightVisitor::LayerOutputHeight(T* )
const 43 inline typename std::enable_if<
44 HasInputHeight<T, size_t&(T::*)()>::value &&
45 !HasModelCheck<T>::value,
size_t>::type
46 OutputHeightVisitor::LayerOutputHeight(T* layer)
const 48 return layer->OutputHeight();
52 inline typename std::enable_if<
53 !HasInputHeight<T, size_t&(T::*)()>::value &&
54 HasModelCheck<T>::value,
size_t>::type
55 OutputHeightVisitor::LayerOutputHeight(T* layer)
const 57 for (
size_t i = 0; i < layer->Model().size(); ++i)
60 layer->Model()[layer->Model().size() - 1 - i]);
62 if (outputHeight != 0)
72 inline typename std::enable_if<
73 HasInputHeight<T, size_t&(T::*)()>::value &&
74 HasModelCheck<T>::value,
size_t>::type
75 OutputHeightVisitor::LayerOutputHeight(T* layer)
const 77 size_t outputHeight = layer->OutputHeight();
79 if (outputHeight == 0)
81 for (
size_t i = 0; i < layer->Model().size(); ++i)
84 layer->Model()[layer->Model().size() - 1 - i]);
86 if (outputHeight != 0)
OutputHeightVisitor exposes the OutputHeight() method of the given module.
Definition: output_height_visitor.hpp:27
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
size_t operator()(LayerType *layer) const
Return the output height.
Definition: output_height_visitor_impl.hpp:23