Прогнозирование DNNClassifier в C ++ Tensorflow

Я создал объект DNNClassifier в тензорном потоке Python и сохранил его в файл protobuf:

dnn_classifier = tf.estimator.DNNClassifier(...)
dnn_classifier.train(...)
dnn_classifier.export_savedmodel('saved_model.pb',...)

Мне нужно импортировать указанную модель в C ++ и сделать прогноз на новый вектор данных. Я скомпилировал библиотеку tenorflow и подтвердил, что она работает с тестовым кодом.

Я загрузил модель следующим образом:

std::unique_ptr<tensorflow::Session>* session
SavedModelBundle* const bundle = new SavedModelBundle();

LoadSavedModel(SessionOptions(), RunOptions(), "saved_model.pb", {"serve"}, bundle);
session->reset(bundle->session.get());

У меня есть 12 входных функций (например: A, B, C, …, L), и мне нужен прогноз класса, основанный на них.

Tensor A(DT_FLOAT, TensorShape()); A.scalar<float>()() = 1.4;
Tensor B(DT_FLOAT, TensorShape()); B.scalar<float>()() = -0.6;
...
Tensor L(DT_FLOAT, TensorShape()); L.scalar<float>()() = 2.6;

const std::vector<std::pair<string, Tensor> >& inputs = {{"A",A},{"B",B}...,{"L",L}}
const std::vector<string>& output_tensor_names = {"A","B",...,"L"}
std::vector<Tensor> outputs;

Вот где я предполагаю, что прогноз должен произойти:

session->Run(inputs, output_tensor_names, {}, &outputs);

Этот код работает, но я не думаю, что он делает то, что я хочу.

Есть лучший способ сделать это? SavedModelBundle также имеет элемент данных MetaGraphDef, который может быть полезен, но я не знаю, как сделать из него прогноз. Помогите?

0

Решение

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

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

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

По вопросам рекламы [email protected]