我将sagemaker与自定义入口点脚本一起使用,并在其中传递了经过修改的预测函数。我想存储一系列模型,以便稍后用于批处理推断,并且在需要时,我希望它利用entrypoiint脚本。我遇到的问题是常规createmodel会忽略入口点脚本。
我发现了几种创建保存入口点脚本的模型的方法。一种是通过endpoint.transformer,但是它在模型名称上添加了一个时间戳以使其唯一,这使得以后很难引用。我只可以存储这些唯一名称的列表以供以后使用,但似乎有点令人费解。
使用deploy可以准确定义名称,但是它还会创建一个不必要的终结点,然后必须将其删除,这似乎又不是正确的处理方式。
因此,在我这样拟合估算器之后
estimator = XGBoost(entry_point = 'scripts/myscript.py',
role = role,
train_instance_count = 1,
train_instance_type = 'ml.c5.2xlarge',
framework_version = '0.90-1',
py_version = 'py3',
base_job_name = job_base
)
estimator.fit(s3_data)
此后,我想创建一个使用入口点脚本的模型,以便可以将其传递给以后的批处理作业。为了将其传递给这些批处理作业,如果有一个命名约定,我可以遵循,而不必将不确定的模型名称存储在某个地方,那就太好了。
所以我猜了两个具体问题:
到目前为止,我只能执行1或2,因此除非有更好的方法(感觉应该如此),否则我将需要一种解决方法。如果需要通过在某处存储带有唯一时间戳的模型名称来进行解决,我不确定如何获得这个名字?使用transform时,它只会添加到基本名称中,但是不确定如何传递给定名称。因此,然后我会做一些事情,例如获取所有模型名称的列表并过滤到我需要的名称...似乎只是我在绕道而行。
谢谢