首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加速tensorflow推理时间

如何加速tensorflow推理时间
EN

Stack Overflow用户
提问于 2017-10-20 02:14:46
回答 2查看 985关注 0票数 2

我们已经训练了一个tf-seq2seq模型来回答问题。主要框架来自google/seq2seq。我们采用双向RNN( GRU编码器/解码器128单元),增加了软注意机制。

我们把最大长度限制在100个字。它大多只生成10~20个单词。

对于模型推断,我们尝试两种情况:

  1. 正常(贪婪算法)其推理时间约为40 is ~100 is。
  2. 波束搜索。我们尝试使用光束宽度5,其推断时间约为400 is ~1000 is。

因此,我们想尝试使用光束宽度3,它的时间可能会减少,但也可能影响最终的效果。

那么,是否有任何建议来缩短我们的案件的推理时间呢?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-10-20 07:39:31

  1. 你可以做网络压缩
  2. 字节对编码统一语言模型等把句子切成段,然后尝试TreeLSTM
  3. 您可以尝试更快的softmax,比如自适应的softmax](https://arxiv.org/pdf/1609.04309.pdf)
  4. 试试cudnnLSTM
  5. 试试扩张RNN
  6. 切换到CNN,就像扩展的CNN,或者BERT,用于并行化和更高效的GPU支持。
票数 1
EN

Stack Overflow用户

发布于 2022-08-02 14:14:22

如果您需要改进性能,我建议您使用OpenVINO。它通过图的剪枝和融合一些操作来减少推理时间。尽管OpenVINO是针对英特尔硬件进行优化的,但它应该与任何CPU一起工作。

这里是NLP模型和各种CPU的一些性能基准。

将Tensorflow模型转换为OpenVINO非常简单,除非您有漂亮的自定义层。关于如何做到这一点的完整教程可以找到这里。下面是一些片段。

安装OpenVINO

最简单的方法是使用PIP。或者,您可以使用这个工具在您的情况下找到最佳方法。

代码语言:javascript
复制
pip install openvino-dev[tensorflow2]

使用模型优化器转换SavedModel模型

模型优化器是来自OpenVINO开发包的命令行工具。它将Tensorflow模型转换为IR,这是OpenVINO的默认格式。您还可以尝试FP16的精度,这将使您在不降低精度的情况下获得更好的性能(只需更改data_type)。在命令行中运行:

代码语言:javascript
复制
mo --saved_model_dir "model" --input_shape "[1, 3, 224, 224]" --data_type FP32 --output_dir "model_ir"

运行推理

转换后的模型可以由运行时加载,并为特定的设备进行编译,例如CPU或GPU (集成到CPU中,比如Intel HD Graphics)。如果你不知道什么是你最好的选择,只需使用汽车。

代码语言:javascript
复制
# Load the network
ie = Core()
model_ir = ie.read_model(model="model_ir/model.xml")
compiled_model_ir = ie.compile_model(model=model_ir, device_name="CPU")

# Get output layer
output_layer_ir = compiled_model_ir.output(0)

# Run inference on the input image
result = compiled_model_ir([input_image])[output_layer_ir]

免责声明:我在OpenVINO工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46841443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档