gpt4 book ai didi

heroku - 有什么方法可以优化 cpu 中的 pytorch 推理?

转载 作者:行者123 更新时间:2023-12-05 05:56:15 29 4
gpt4 key购买 nike

我将在网站上提供 pytorch 模型(resnet18)。
然而,在 cpu(amd3600) 中进行推理需要 70% 的 cpu 资源。
我不认为服务器(heroku)可以处理这个计算。
有什么方法可以优化 cpu 中的推理吗?
非常感谢

最佳答案

诚然,我不是 Heroku 的专家,但您可能可以使用 OpenVINO . OpenVINO 针对英特尔硬件进行了优化,但它应该适用于任何 CPU。它通过例如优化推理性能图修剪或将一些操作融合在一起。 Here是从 PyTorch 转换而来的 Resnet-18 的性能基准。

您可以找到有关如何转换 PyTorch 模型的完整教程 here .下面是一些片段。

安装 OpenVINO

最简单的方法是使用 PIP。或者,您可以使用 this tool找到适合您情况的最佳方法。

pip install openvino-dev[pytorch,onnx]

将模型保存到 ONNX

OpenVINO 目前无法直接转换 PyTorch 模型,但可以使用 ONNX 模型进行转换。此示例代码假定该模型用于计算机视觉。

dummy_input = torch.randn(1, 3, IMAGE_HEIGHT, IMAGE_WIDTH)
torch.onnx.export(model, dummy_input, "model.onnx", opset_version=11)

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

模型优化器是来自 OpenVINO 开发包的命令行工具,因此请确保您已安装它。它将 ONNX 模型转换为 OV 格式(又名 IR),这是 OpenVINO 的默认格式。它还将精度更改为 FP16(以进一步提高性能)。在命令行中运行:

mo --input_model "model.onnx" --input_shape "[1,3, 224, 224]" --mean_values="[123.675, 116.28 , 103.53]" --scale_values="[58.395, 57.12 , 57.375]" --data_type FP16 --output_dir "model_ir"

在 CPU 上运行推理

转换后的模型可以由运行时加载并针对特定设备进行编译,例如CPU 或 GPU(集成到您的 CPU 中,例如 Intel HD Graphics)。如果您不知道什么是最适合您的选择,请使用 AUTO。

# 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 上工作。

关于heroku - 有什么方法可以优化 cpu 中的 pytorch 推理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69241400/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com