Невозможно создать перекрестную потерю энтропии в модели CNTK

Я пытаюсь следовать примеру из Вот выполнить обучающий шаг на входных данных в 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");

Мое приложение вылетает прямо в этой последней строке. Что я делаю неправильно? Шаг вывода работает просто отлично, проблема только в обучающем шаге.

Не уверен, что это уместно, но я изучил это на Python с Keras (с бэкэндом CNTK), прежде чем встроить его в приложение c ++.

Я поймал исключение, связанное с ним (std :: logic_error), и это было результатом:

  • out «Операция ‘ElementTimes’: операнд ‘Placeholder (‘ Placeholder284 ‘, [500], [#])’ имеет динамические оси, которые не соответствуют динамическим осям ‘[*, #]’ других операндов». std :: basic_string, std :: allocator>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …