使用AWS SageMaker训练作业时,如果未指定保存模型输出的路径,训练作业将不会自动保存模型输出。以下是解决方法的示例代码:
import sagemaker
from sagemaker import get_execution_role
from sagemaker.amazon.amazon_estimator import get_image_uri
# 获取SageMaker的角色
role = get_execution_role()
# 创建SageMaker会话
sagemaker_session = sagemaker.Session()
# 设置训练参数
hyperparameters = {
'num_epochs': 10,
'num_classes': 2,
'feature_dim': 10,
'mini_batch_size': 32,
}
# 设置模型输出路径
output_path = 's3://your-bucket/model-output'
# 创建Estimator对象
estimator = sagemaker.estimator.Estimator(image_uri=get_image_uri(sagemaker_session.boto_region_name, 'linear-learner'),
role=role,
instance_count=1,
instance_type='ml.m4.xlarge',
output_path=output_path,
hyperparameters=hyperparameters)
# 设置训练数据路径
train_data = 's3://your-bucket/train_data'
# 设置训练数据通道
train_input = sagemaker.s3_input(s3_data=train_data, content_type='text/csv')
# 启动训练作业
estimator.fit({'train': train_input})
在上述代码中,我们通过设置output_path
参数来指定保存模型输出的路径。此路径应该是一个S3存储桶的路径。在训练完成后,模型输出将被保存到指定的S3路径中。
请确保替换代码示例中的以下部分以适应您的具体情况:
's3://your-bucket/model-output'
:替换为您要保存模型输出的S3存储桶路径。's3://your-bucket/train_data'
:替换为您的训练数据的S3存储桶路径。这样,当训练作业完成后,您将在指定的S3路径中找到模型输出。