Я нашел ответ, выполнив поиск по базе кодов тензорного потока.
tensorflow::grappler::GrapplerItem item;
item.fetch = std::vector<std::string>{output_node_};
item.graph = bundle_.meta_graph_def.graph_def();
tensorflow::RewriterConfig rw_cfg;
rw_cfg.add_optimizers("constfold");
rw_cfg.add_optimizers("layout");
auto new_graph_def = bundle_.meta_graph_def.mutable_graph_def();
tensorflow::grappler::MetaOptimizer meta_opt(nullptr, rw_cfg);
meta_opt.Optimize(nullptr, item, new_graph_def);
Добавив приведенные выше строки кода, я уменьшил свой GraphDef-Serialized-Filesize с 20 МБ до 6 МБ, так что, конечно же, это так обрезка Но я обнаружил, что session.Run () стоит больше времени, чем раньше.
============ update: приведенное выше использование некорректно. Настройка по умолчанию оптимизирует график с помощью устройства захвата и запускается при загрузке сохраненных моделей. Вы можете узнать правильное использование, просмотрев LoadSavedModel
соответствующие коды.