首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mlpack : FFN<>中的索引越界

mlpack : FFN<>中的索引越界
EN

Stack Overflow用户
提问于 2019-11-14 17:24:41
回答 1查看 224关注 0票数 1

我有这样的代码:

代码语言:javascript
复制
#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);

}

当我尝试运行此命令时,我总是得到索引越界错误:

代码语言:javascript
复制
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)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-29 18:46:42

确保您的训练标签范围为1,#classes。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58853319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档