PyTorch¶
关于此页
这是 BentoML 中 PyTorch 的 API 参考。有关如何在 BentoML 中使用 PyTorch 的更多信息,请参阅 PyTorch 指南。
注意
您可以在我们的 BentoML/examples 目录下找到更多 PyTorch 的示例。
- bentoml.pytorch.save_model(name: Tag | str, model: torch.nn.Module, *, signatures: ModelSignaturesType | None = None, labels: t.Dict[str, str] | None = None, custom_objects: t.Dict[str, t.Any] | None = None, external_modules: t.List[ModuleType] | None = None, metadata: t.Dict[str, t.Any] | None = None) bentoml.Model [source]¶
将模型实例保存到 BentoML 模型库。
- 参数:
name (
str
) – 给定模型实例的名称。这应该通过 Python 标识符检查。model (
torch.nn.Module
) – 要保存的模型实例signatures (
ModelSignaturesType
, 可选, 默认为None
) – 方法名称及其对应签名的字典。labels (
Dict[str, str]
, 可选, 默认为None
) – 用于管理模型的用户定义标签,例如 team=nlp, stage=devcustom_objects (
Dict[str, Any]]
, 可选, 默认为None
) – 要与模型一起保存的用户定义的附加 Python 对象,例如 tokenizer 实例、预处理器函数、模型配置 jsonexternal_modules (
List[ModuleType]
, 可选, 默认为None
) – 要与模型或自定义对象一起保存的用户定义的附加 Python 模块,例如 tokenizer 模块、预处理器模块、模型配置模块metadata (
Dict[str, Any]
, 可选, 默认为None
) – 给定模型的自定义元数据。
- 返回:
一个
tag
,格式为 name:version,其中 name 是用户定义的模型名称,version 是由 BentoML 生成的版本。- 返回类型:
Tag
示例
import torch import bentoml class NGramLanguageModeler(nn.Module): def __init__(self, vocab_size, embedding_dim, context_size): super(NGramLanguageModeler, self).__init__() self.embeddings = nn.Embedding(vocab_size, embedding_dim) self.linear1 = nn.Linear(context_size * embedding_dim, 128) self.linear2 = nn.Linear(128, vocab_size) def forward(self, inputs): embeds = self.embeddings(inputs).view((1, -1)) out = F.relu(self.linear1(embeds)) out = self.linear2(out) log_probs = F.log_softmax(out, dim=1) return log_probs tag = bentoml.pytorch.save("ngrams", NGramLanguageModeler(len(vocab), EMBEDDING_DIM, CONTEXT_SIZE)) # example tag: ngrams:20201012_DE43A2
与 Torch Hub 和 BentoML 集成
import torch import bentoml resnet50 = torch.hub.load("pytorch/vision", "resnet50", pretrained=True) ... # trained a custom resnet50 tag = bentoml.pytorch.save("resnet50", resnet50)
- bentoml.pytorch.load_model(bentoml_model: str | Tag | Model, device_id: str | None = 'cpu', **torch_load_args: Any) torch.nn.Module [source]¶
从具有给定名称的 BentoML 模型加载模型。
- 参数:
tag (
Union[str, Tag]
) – BentoML 本地模型库中已保存模型的 Tag。device_id (
str
, 可选, 默认为cpu
) – 可选设备,用于放置给定的模型。请参阅 设备属性。
- 返回:
一个
torch.nn.Module
实例,来自 BentoML 模型库。- 返回类型:
torch.nn.Module
示例
import bentoml model = bentoml.pytorch.load_model('lit_classifier:latest', device_id="cuda:0")