如何使用张量流抓斗器?



我正在尝试通过应用Grappler来优化我的张量流模型服务性能,我正在研究一个C++张量流服务服务。 AFAIK,我应该在LoadSavedModel之后做摔跤手的事情.但是我不确定我到底应该做什么,我应该自己编写op优化还是只调用 API? 我已经在谷歌上搜索了很长一段时间,没有看到解决问题的帖子或代码片段。

你能给我任何建议或代码示例吗?

我通过搜索tensorflow代码库找到了答案。

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 从 20MB 减少到 6MB,所以它肯定做了修剪。但我找到了会议。Run(( 比以前花费更多的时间。

============更新: 上面的用法不正确。默认设置使用抓斗器优化图形,并在加载保存的模型时运行。您可以通过查看LoadSavedModel相关代码来了解正确的用法。

相关内容

最新更新