快捷鍵

torch.jit.optimize_for_inference

torch.jit.optimize_for_inference(mod, other_methods=None)[原始碼][原始碼]

執行一組最佳化流程,以最佳化模型以進行推論。

如果模型尚未凍結,optimize_for_inference 將自動調用 torch.jit.freeze

除了通用最佳化(無論環境如何,都應該加速您的模型)之外,prepare for inference 還將包含建構特定的設定,例如 CUDNN 或 MKLDNN 的存在,並且將來可能會進行轉換,從而在一台機器上加速,但在另一台機器上減速。因此,在調用 optimize_for_inference 之後,不實作序列化,也不保證序列化。

這仍然是原型階段,並且可能具有降低模型速度的潛力。到目前為止,主要目標用例是 CPU 上的視覺模型,以及 GPU 上的視覺模型(程度較小)。

範例(使用 Conv->Batchnorm 最佳化模組)

import torch
in_channels, out_channels = 3, 32
conv = torch.nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=2, bias=True)
bn = torch.nn.BatchNorm2d(out_channels, eps=.001)
mod = torch.nn.Sequential(conv, bn)
frozen_mod = torch.jit.optimize_for_inference(torch.jit.script(mod.eval()))
assert "batch_norm" not in str(frozen_mod.graph)
# if built with MKLDNN, convolution will be run with MKLDNN weights
assert "MKLDNN" in frozen_mod.graph
傳回類型

ScriptModule

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得針對初學者和進階開發者的深入教學

檢視教學

資源

尋找開發資源並獲得問題解答

檢視資源