1

我已将经过训练的 tensorflow v2 模型上传到 Google AI 平台,以对看不见的数据进行预测。这些数据以分片的形式存储在 Google Cloud Storage 中,每个分片大小为 300 MB。

我正在使用笔记本来预处理数据,效果很好。在对预处理数据进行预测时,它可以工作,但速度非常慢,仅 300 MB 的文件大约需要 90 分钟。我有很多这样的碎片,所以我必须找到一种方法来加快速度。

我在 cpu、RAM 甚至 gpu 方面尝试了不同的笔记本配置,但它对预测运行时没有影响。

我错过了什么吗?任何想法都非常感谢!

4

1 回答 1

0

在尝试优化模型以服务于最重要的考虑因素时

1:型号尺寸

2:预测速度

3:预测吞吐量

TensorFlow 中有几种技术可以让你缩小模型的大小并改善预测延迟。根据官方文档

“冻结:将 SavedModel 的检查点文件中存储的变量转换为
直接存储在模型图中的常量。这减少了模型的整体大小。

修剪:去除预测路径中未使用的节点和图的输出,合并重复节点,以及清理其他节点操作,如摘要、身份等。

常量折叠:在模型中查找始终计算为常量表达式的任何子图,并将它们替换为这些常量。

折叠批量规范:将批量归一化中引入的乘法折叠到前一层的权重乘法中。

量化:将权重从浮点转换为较低精度,例如 16 位或 8 位。

实际过程是这样的

  1. 冻结 SavedModel:SavedModel ⇒ GraphDef
  2. 优化冻结模型:GraphDef ⇒ GraphDef
  3. 将优化后的冻结模型转换回 SavedModel:GraphDef ⇒ SavedModel

可以在此处找到一篇非常好的文章,详细介绍服务的整个优化过程 Optimizing TensorFlow Models for Serving 1

于 2019-11-25T15:15:43.840 回答