我们已经训练了一个tf-seq2seq模型来回答问题。主要框架来自google/seq2seq。我们采用双向RNN( GRU编码器/解码器128单元),增加了软注意机制。
我们把最大长度限制在100个字。它大多只生成10~20个单词。
对于模型推断,我们尝试两种情况:
因此,我们想尝试使用光束宽度3,它的时间可能会减少,但也可能影响最终的效果。
那么,是否有任何建议来缩短我们的案件的推理时间呢?谢谢。
发布于 2017-10-20 07:39:31
发布于 2022-08-02 14:14:22
如果您需要改进性能,我建议您使用OpenVINO。它通过图的剪枝和融合一些操作来减少推理时间。尽管OpenVINO是针对英特尔硬件进行优化的,但它应该与任何CPU一起工作。
这里是NLP模型和各种CPU的一些性能基准。
将Tensorflow模型转换为OpenVINO非常简单,除非您有漂亮的自定义层。关于如何做到这一点的完整教程可以找到这里。下面是一些片段。
安装OpenVINO
最简单的方法是使用PIP。或者,您可以使用这个工具在您的情况下找到最佳方法。
pip install openvino-dev[tensorflow2]使用模型优化器转换SavedModel模型
模型优化器是来自OpenVINO开发包的命令行工具。它将Tensorflow模型转换为IR,这是OpenVINO的默认格式。您还可以尝试FP16的精度,这将使您在不降低精度的情况下获得更好的性能(只需更改data_type)。在命令行中运行:
mo --saved_model_dir "model" --input_shape "[1, 3, 224, 224]" --data_type FP32 --output_dir "model_ir"运行推理
转换后的模型可以由运行时加载,并为特定的设备进行编译,例如CPU或GPU (集成到CPU中,比如Intel HD Graphics)。如果你不知道什么是你最好的选择,只需使用汽车。
# 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工作。
https://stackoverflow.com/questions/46841443
复制相似问题