sagemaker.pytorch中的PyTorch,PyTorchModel之间的区别

时间:2019-08-22 07:30:34

标签: pytorch amazon-sagemaker

我正在尝试使用Sagemaker中的pytorch创建模型。我尝试使用sagemaker.pytorch中的-PyTorch模块进行部署(从sagemaker.pytorch导入PyTorch)。

但是,我想了解sagemaker.pytorch中的PyTorchModel [从sagemaker.pytorch导入PyTorchModel]。他们都有deploy()。然后,我跟随链接https://sagemaker.readthedocs.io/en/stable/using_pytorch.html创建和部署模型。我看不到在任何地方使用“ PyTorchModel”的地方。我想知道两者之间的区别以及何时使用。

到目前为止,我尝试了以下方法。

第1步::我叫pytorch估计器

pytorch_model = PyTorch(entry_point='entry_v1.py',
                        train_instance_type='ml.m5.4xlarge',
                        role = role,
                        train_instance_count=1,
                        output_path = "s3://model-output-bucket/test",
                        framework_version='1.1',
                        hyperparameters = {'epochs': 10,'learning-rate': 0.01})

第2步:我调用了fit方法

pytorch_model.fit({'train': 's3://training-data/train_data.csv',
                  'test':'s3://testing-data/test_data.csv'})

步骤3:我调用了deploy方法。

predictor = pytorch_model.deploy(instance_type='ml.m4.xlarge', initial_instance_count=1)

我想知道何时在这里致电create_model()

我对这里有一些了解。我们使用[from sagemaker.pytorch import PyTorch]进行端到端处理,在该过程中,我们使用.fit()训练模型,然后可以使用.deploy()

但是,通过[from sagemaker.pytorch import PyTorchModel],我们可以使用已经训练的模型。

第1步:

pytorch_model = PyTorchModel(model_data='s3://model-output-bucket/sagemaker-pytorch-2019-08-20-16-54-32-500/output/model.tar.gz', role=role,entry_point=entry_v1.py,sagemaker_session=sagemaker_session)

第二步:

predictor = pytorch_model.deploy(instance_type='ml.c4.xlarge', initial_instance_count=1)

此外,PyTorch Estimator的.create_model()将返回PyTorchModel的对象。

如果我在任何地方错了,请纠正我。

1 个答案:

答案 0 :(得分:1)

PyTorch类是从Framework类继承的,而PyTorchModel是从FrameworkModel类继承的。

两者之间的区别在于: 框架用于执行模型的端到端培训和部署 FrameworkModel用于从预训练的模型创建一个Estimator,然后使用它通过deploy()方法部署端点。这不涉及模型的训练。

在PyTorch类中,您不能直接调用部署模型。首先,您必须调用fit()方法,然后再调用deploy()方法。

您可以阅读以下博客,了解如何将自己的预训练模型带入Sagemaker https://aws.amazon.com/blogs/machine-learning/bring-your-own-pre-trained-mxnet-or-tensorflow-models-into-amazon-sagemaker/

关于create_model()方法,如果您想在训练后直接部署端点,则无需在脚本中调用它。 通常用于需要为多个模型创建推理管道的场景中