无法在CNTK模型中创建交叉熵损失

时间:2018-06-07 20:41:36

标签: c++ cntk

我试图按照here中的示例来对c ++中的输入数据进行训练。这是我的代码:

Model::Model(){

    const wchar_t* modelFile = L"./models/final/model.cntk";

    _modelFunc = Function::Load(modelFile, _device);

    _model_input = _modelFunc->Arguments()[0];
    _model_output = _modelFunc->Output();
}


void Model::run_train_step(string &invoked_cmd) {

    const size_t num_targets = targetcmd2index.size();

    auto label_var = InputVariable({ num_targets }, AsDataType<float>(), L"labels");


    // loss and output
    auto xentropy = CrossEntropyWithSoftmax(_modelFunc, label_var, L"xentropy");

我的应用程序在最后一行崩溃了。我究竟做错了什么?推理步骤工作正常,它只是有问题的训练步骤。

不确定它是否相关,但我先用Keras(使用CNTK后端)在Python中训练它,然后再将其构建到c ++应用程序中。

我抓住了与它相关的异常(std :: logic_error),这就是结果:

  • out&#34; Operation&#39; ElementTimes&#39;:操作数&#39;占位符(&#39;占位符284&#39;,[500],[#])&#39;有动态轴,与动态轴不匹配&#39; [*,#]&#39;其他操作数。&#34; std :: basic_string,std :: allocator&gt;

0 个答案:

没有答案