本文簡要介紹python語言中 torch.jit.optimize_for_inference
的用法。
用法:
torch.jit.optimize_for_inference(mod)
執行一組優化傳遞以優化模型以進行推理。如果模型尚未凍結,optimize_for_inference 將自動調用
torch.jit.freeze
。除了應該在任何環境下加速您的模型的通用優化之外,為推理做準備還將烘焙構建特定設置,例如 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
相關用法
- Python PyTorch ones_用法及代碼示例
- Python PyTorch ones_like用法及代碼示例
- Python PyTorch orthogonal用法及代碼示例
- Python PyTorch orthogonal_用法及代碼示例
- Python PyTorch outer用法及代碼示例
- Python PyTorch ones用法及代碼示例
- Python PyTorch one_hot用法及代碼示例
- Python PyTorch frexp用法及代碼示例
- Python PyTorch jvp用法及代碼示例
- Python PyTorch cholesky用法及代碼示例
- Python PyTorch vdot用法及代碼示例
- Python PyTorch ELU用法及代碼示例
- Python PyTorch ScaledDotProduct.__init__用法及代碼示例
- Python PyTorch gumbel_softmax用法及代碼示例
- Python PyTorch get_tokenizer用法及代碼示例
- Python PyTorch saved_tensors_hooks用法及代碼示例
- Python PyTorch positive用法及代碼示例
- Python PyTorch renorm用法及代碼示例
- Python PyTorch AvgPool2d用法及代碼示例
- Python PyTorch MaxUnpool3d用法及代碼示例
- Python PyTorch Bernoulli用法及代碼示例
- Python PyTorch Tensor.unflatten用法及代碼示例
- Python PyTorch Sigmoid用法及代碼示例
- Python PyTorch Tensor.register_hook用法及代碼示例
- Python PyTorch ShardedEmbeddingBagCollection.named_parameters用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.jit.optimize_for_inference。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。