【问题标题】:Where do I store my model's training data, artifacts, etc?我在哪里存储模型的训练数据、工件等?
【发布时间】:2019-08-14 07:32:51
【问题描述】:

我正在尝试使用 docker 构建自定义 ML 模型并将其推送到 Amazon SageMaker。我知道事情应该遵循 opt/ml 中的一般结构。但是 Amazon S3 中没有这样的存储桶???在构建映像并将其推送到 AWS 之前,我是否应该在容器中创建此目录?我只是不知道将我的训练数据等放在哪里。

【问题讨论】:

    标签: amazon-sagemaker


    【解决方案1】:

    SageMaker 使用通道->本地文件夹的约定使用您的代码自动部署 Docker 映像。您在input data configuration 中使用通道定义的所有内容都将复制到 /opt/ml/ 文件夹下的本地 Docker 文件系统,使用通道名称作为子名称文件夹。

    {
    "train" : {"ContentType":  "trainingContentType", 
               "TrainingInputMode": "File", 
               "S3DistributionType": "FullyReplicated", 
               "RecordWrapperType": "None"},
    "evaluation" : {"ContentType":  "evalContentType", 
                    "TrainingInputMode": "File", 
                    "S3DistributionType": "FullyReplicated", 
                    "RecordWrapperType": "None"},
    "validation" : {"TrainingInputMode": "File", 
                    "S3DistributionType": "FullyReplicated", 
                    "RecordWrapperType": "None"}
    } 
    

    到:

    /opt/ml/input/data/training
    /opt/ml/input/data/validation
    /opt/ml/input/data/testing
    

    【讨论】:

      【解决方案2】:

      在 AWS SageMaker 上创建自定义模型时,您可以将带有推理代码的 docker 容器存储在 ECR 上,同时将模型工件仅保留在 S3 上。然后,您可以在创建模型时指定所述工件的 S3 路径(例如,使用 Boto3 的 create_model 时)。这可能会简化您的解决方案,因此您不必每次可能需要更改工件时都重新上传 docker 容器(尽管您需要在 SageMaker 上重新创建模型)。

      您的数据集也是如此。 SageMakers 的Batch Transform 函数允许您将存储在 S3 上的任何数据集直接馈送到模型中,而无需将它们保存在 docker 容器中。如果您想在许多不同的数据集上运行模型而不需要重新上传图像,这真的很有帮助。

      【讨论】:

        猜你喜欢
        • 2017-12-12
        • 2020-07-07
        • 2020-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2017-07-24
        • 2020-10-22
        相关资源
        最近更新 更多