我正在尝试通过应用抓钩器来优化我的tensorflow模型的服务性能,我正在开发C ++ tensorflow服务服务。AFAIK,在LoadSavedModel
之后,我应该做抓斗器。但是我不确定应该怎么做,应该自己编写op
优化还是只调用API?我已经搜索了很长时间的Google,但没有看到解决问题的帖子或代码段。
您能为此提供任何建议或代码示例吗?
我通过搜索张量流代码库得到了答案。
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);
ps:通过添加上面的代码行,我将GraphDef-Serialized-Filesize从20MB减少到6MB,因此可以肯定地进行了修剪。但是我发现会话。Run()比以前花费更多的时间。