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()的维度即可。
然后给各个维度附上具体的对应的数值即可。
