tensorflow - 如何使用 tensorflow 抓斗器?

标签 tensorflow optimization deep-learning tensorflow-serving

我正在尝试通过应用 grappler 来优化我的 tensorflow 模型服务性能,我正在开发 C++ tensorflow 服务服务。 AFAIK,我应该在 LoadSavedModel 之后做 grappler 的事情。但我不确定我到底应该做什么,我应该自己编写 op 优化还是只调用 API? 我在 Google 上搜索了很长一段时间,没有看到解决问题的帖子或代码片段。

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

最佳答案

我通过搜索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,所以它确实进行了修剪。但我发现 session.Run() 比以前花费了更多的时间。

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

关于tensorflow - 如何使用 tensorflow 抓斗器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59630937/

相关文章:

algorithm - 装箱(或背包?)问题

python - 使用 TPU Estimator API 时出现 ValueError : The features to the model returned by input_fn must have static shape,

tensorflow - 添加其他指标来计算性能

c - for 循环上的多个 pragma 指令(C 和 VS 2013)

c++ - Haskell 可以像 Clang/GCC 一样优化函数调用吗?

python - 堆叠卷积层如何在 CNN 中工作?

python - 如何为 ML 模型正确设置种子值?

python - 由于自定义度量函数,Keras 中出现无效的磁带状态错误

python - 如何将卷积层添加到自定义估计器

python - ValueError : Cannot feed value of shape (2, ) 对于张量 'Placeholder:0' ,其形状为 '(1, 2)'