C++ mlpack:FFN中的索引超出范围<&燃气轮机;

C++ mlpack:FFN中的索引超出范围<&燃气轮机;,c++,machine-learning,neural-network,mlpack,C++,Machine Learning,Neural Network,Mlpack,我有以下代码: #include<mlpack/core.hpp> #include<mlpack/methods/ann/ffn.hpp> #include<mlpack/methods/ann/layer/linear.hpp> int main(int argc, char** argv){ assert(argc==3); arma::mat data_in, data_out; mlpack::data::Load(argv

我有以下代码:

#include<mlpack/core.hpp>
#include<mlpack/methods/ann/ffn.hpp>
#include<mlpack/methods/ann/layer/linear.hpp>

int main(int argc, char** argv){
    assert(argc==3);
    arma::mat data_in, data_out;
    mlpack::data::Load(argv[1], data_in);
    mlpack::data::Load(argv[2], data_out);

    std::cout<<"creating model"<<std::endl;

    mlpack::ann::FFN<> model;
    model.Add<mlpack::ann::Linear<>>(data_in.n_rows, 10);
    model.Add<mlpack::ann::SigmoidLayer<>>();
    model.Add<mlpack::ann::Linear<>>(10, data_out.n_rows);
    model.Add<mlpack::ann::SigmoidLayer<>>();

    std::cout<<"training started"<<std::endl;

    model.Train(data_in, data_out);

我还检查了ann::FFN上的mlpack教程,当我尝试运行该代码时,它完全可以正常工作!我在这里使用的数据集是一个包含10000行和5列的数据集,当在这里使用时,它会转换为5行和10000列,因为mlpack将一列视为一个点。数据集中的每个数字都是一个介于0和1之间的值,并且是随机生成的。输入和输出数据集具有相同的维度。文档也没有那么有用。

确保您的培训标签范围为[1,#类]

creating model
training started

error: Mat::operator(): index out of bounds
terminate called after throwing an instance of 'std::logic_error'
  what():  Mat::operator(): index out of bounds
Aborted (core dumped)