我们在本地训练sklearn模型,然后将其上传为*。焦油gz文件到S3,以便通过Sagemaker进行部署。在那里,我们使用Sagemaker自己的SKLearnModel docker映像,并将我们的模型部署到Sagemakerendpoint。我们的方法类似于本线程或此处描述的方法。
这基本上就是我们的Sagemaker jupyter笔记本中的代码:
from sagemaker.sklearn.model import SKLearnModel
sagemaker_model = SKLearnModel(model_data='s3://ourModelS3Bucket/ourModelTarball.tar.gz',
role='arn:aws:iam::someNumber:role/OurPredefinedRole',
entry_point='our_entry_point.py')
predictor = sagemaker_model.deploy(initial_instance_count=1,
instance_type='ml.t2.large') #be careful which instance you choose!
我们想知道的是,我们必须如何为我们的模型编写入口点代码(这里称为'our_entry_point.py'),以便Sagemaker能够成功地部署它?
它是否必须包含预测()函数,它是像脚本一样从上到下执行,还是我们必须定义一个,如果__name__ == "__main__":
块?这一点尤其相关,因为在我们执行预测本身之前,我们可能希望在这里添加一些额外的特征生成/选择。
任何帮助将是非常欢迎的,无论是直接的答案或一个链接到留档/教程,可能会提供答案。到目前为止,Sagemaker文档和一些Github示例非常有用...
我建议看一下:
但要直接回答您的问题:对于代码的可移植性,主块始终是一个好主意。SageMaker确实支持但不要求在入口点
脚本中指定这样的块(参见上面的示例)。SageMaker将从该文件导入所需的函数,而不是执行主块。
就您需要定义的功能而言,上述单据说明:
必须先加载模型,然后才能提供服务。SageMaker Scikit learn model server通过调用您必须在脚本中提供的model_fn函数来加载您的模型。型号fn应具有以下签名:
和
SageMaker Scikit学习模型服务器提供这些功能的默认实现。您可以在宿主脚本中为这些函数提供自己的实现。如果省略任何定义,则SageMaker Scikit学习模型服务器将使用该函数的默认实现。
所以看起来你必须定义model_fn
但是其他的都是可选的(这也可以在示例中看到)
我发现很难创建自己的openNLP模型。谁能告诉我,如何拥有自己的模型。培训应该如何进行。 输入应该是什么,输出模型文件将存储在哪里。
我有一个模型。预训练的pkl文件以及与ml模型相关的所有其他文件。我想把它部署到aws sagemaker上。但是在没有培训的情况下,如何将其部署到aws sagmekaer,就像aws sagemaker中的fit()方法一样,运行train命令并推送模型。焦油gz到s3位置,当使用deploy方法时,它使用相同的s3位置来部署模型,我们不会在s3中手动创建与aws模型创建的位置相同的位置,并使
问题内容: 我像这样使用scikit-learn的SVM: 我的问题是,当我使用分类器预测训练集成员的班级时,即使在scikit- learns实现中,分类器也可能是错误的。(例如) 问题答案: 是的,可以运行以下代码,例如: 分数是0.61,因此将近40%的训练数据被错误分类。部分原因是,即使默认内核是(理论上也应该能够对任何训练数据集进行完美分类,只要您没有两个带有不同标签的相同训练点),也可
我想在SageMaker找一份当地的培训工作。 根据这个AWS笔记本(https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb),我能够在本地进行训练和预测。 有没有办法
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我以前在我的Java项目中与Maven一起工作,但今天我开始与AndroidStudio打交道。 我看到它鼓励使用Gradle,我没有问题学习新的工具。所以我开始了一个非常基本的Android手机应用程序的例子,当我点击一个按钮时,它只说“你好世界”。 我把app/src推到一个Git repo中,并尝试将我的作品放到另一台电脑上,但它并不理解我的项目是Android的项目。我可能错过了一个Gra