我正在尝试使用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的对象。
如果我在任何地方错了,请纠正我。
答案 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()方法,如果您想在训练后直接部署端点,则无需在脚本中调用它。 通常用于需要为多个模型创建推理管道的场景中