14 #ifndef MLPACK_METHODS_ANN_VISITOR_OUTPUT_WIDTH_VISITOR_HPP 15 #define MLPACK_METHODS_ANN_VISITOR_OUTPUT_WIDTH_VISITOR_HPP 20 #include <boost/variant.hpp> 32 template<
typename LayerType>
39 typename std::enable_if<
40 !HasInputWidth<T, size_t&(T::*)()>::value &&
41 !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
47 typename std::enable_if<
48 HasInputWidth<T, size_t&(T::*)()>::value &&
49 !HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
54 typename std::enable_if<
55 !HasInputWidth<T, size_t&(T::*)()>::value &&
56 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
62 typename std::enable_if<
63 HasInputWidth<T, size_t&(T::*)()>::value &&
64 HasModelCheck<T, std::vector<LayerTypes>&(T::*)()>::value,
size_t>::type
72 #include "output_width_visitor_impl.hpp"
Linear algebra utility functions, generally performed on matrices or vectors.
size_t operator()(LayerType *layer) const
Return the output width.
std::enable_if< !HasInputWidth< T, size_t &(T::*)()>::value &&!HasModelCheck< T, std::vector< LayerTypes > &(T::*)()>::value, size_t >::type LayerOutputWidth(T *layer) const
Return 0 if the module doesn't implement the InputWidth() or Model() function.
OutputWidthVisitor exposes the OutputWidth() method of the given module.