in source/neuropod/bindings/c/c_api.cc [90:119]
void NP_InferWithRequestedOutputs(NP_Neuropod * model,
const NP_NeuropodValueMap *inputs,
size_t noutputs,
const char ** requested_outputs,
NP_NeuropodValueMap ** outputs,
NP_Status * status)
{
try
{
// By default empty collection of requested_ouputs expected.
// Note that it copies C-strings (0-terminated) from given array.
// User must guarantee that noutputs and requested_outputs address valid data..
std::vector<std::string> rout;
if (requested_outputs != nullptr)
{
for (size_t i = 0; i < noutputs; ++i)
{
rout.emplace_back(requested_outputs[i]);
}
}
*outputs = new NP_NeuropodValueMap();
(*outputs)->data = std::move(*model->model->infer(inputs->data, rout));
NP_ClearStatus(status);
}
catch (std::exception &e)
{
status->code = NEUROPOD_ERROR;
status->message = e.what();
}
}