25 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> Matrix;
26 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> Vector;
27 typedef Eigen::RowVectorXi IntegerVector;
34 virtual void check_target_data(
const Matrix& target) {}
39 virtual void check_target_data(
const IntegerVector& target)
41 throw std::invalid_argument(
"[class Output]: This output type cannot take class labels as target data");
47 virtual void evaluate(
const Matrix& prev_layer_data,
const Matrix& target) = 0;
52 virtual void evaluate(
const Matrix& prev_layer_data,
const IntegerVector& target)
54 throw std::invalid_argument(
"[class Output]: This output type cannot take class labels as target data");
59 virtual const Matrix& backprop_data()
const = 0;
64 virtual Scalar loss()
const = 0;