session->Run(inputs, { “prob”, “landmarks”,”box” }, {}, &outputs);
input格式说明
Tensor image_tensor(tensorflow::DT_FLOAT, tensorflow::TensorShape({ image.rows, image.cols, 3 }));
mat2tensor(image, image_tensor, image.rows, image.cols);
Tensor min_size(tensorflow::DT_FLOAT, TensorShape());
min_size.scalar<float>()() = 40;
Tensor thresholds(tensorflow::DT_FLOAT, tensorflow::TensorShape({ 3 }));
float *pthresholds = thresholds.flat<float>().data();
pthresholds[0] = 0.6;
pthresholds[1] = 0.7;
pthresholds[2] = 0.7;
Tensor factor(tensorflow::DT_FLOAT, tensorflow::TensorShape());
factor.scalar<float>()() = 0.709;
std::vector<std::pair<string, tensorflow::Tensor>> inputs =
{
{ "input", image_tensor },
{ "min_size", min_size },
{ "thresholds", thresholds },
{ "factor", factor },
};
std::vector<Tensor> outputs(tensorflow::DT_FLOAT);
status = session->Run(inputs, { "prob", "landmarks","box" }, {}, &outputs);
可以看到模型的输入为一个vector,也就是一个模型的输入可以有多个
单个输入的格式为std::pair
就是具体的数值必定是一个Tensor
输入Tensor的定义为:
Tensor input(tensorflow::DT_FLOAT, TensorShape());
其中只用根据模型输入的要求定义TensorShape()的维度即可。
然后给各个维度附上具体的对应的数值即可。