簡體   English   中英

更改 AWS SageMaker 訓練作業上的 model 文件保存位置

[英]Change model file save location on AWS SageMaker Training Job

我正在嘗試在 AWS 上運行自定義 python/sklearn sagemaker 腳本,基本上從這些示例中學習: https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end。 ipynb

一切正常,如果定義 arguments,訓練 model 和 output 文件:

parser.add_argument('--model-dir', type=str, default=os.environ.get('SM_MODEL_DIR'))
parser.add_argument('--train', type=str, default=os.environ.get('SM_CHANNEL_TRAIN'))
parser.add_argument('--test', type=str, default=os.environ.get('SM_CHANNEL_TEST'))

# train the model...

joblib.dump(model, os.path.join(args.model_dir, "model.joblib"))

並通過以下方式調用工作:

aws_sklearn.fit({'train': 's3://path/to/train', 'test': 's3://path/to/test'}, wait=False)

在這種情況下,model 存儲在不同的自動生成的存儲桶中,這是我不想要的。 我想在我從中獲取數據的同一個 s3 存儲桶中獲取 output(.joblib 文件)。 所以我添加了參數model-dir

aws_sklearn.fit({'train': 's3://path/to/train', 'test': 's3://path/to/test', `model-dir`: 's3://path/to/model'}, wait=False)

但它會導致錯誤: FileNotFoundError: [Errno 2] No such file or directory: 's3://path/to/model/model.joblib'

如果我在訓練腳本中硬編碼 output 路徑,也會發生同樣的情況。

所以主要問題是,如何在我選擇的存儲桶中獲取 output 文件?

您可以在定義估算器時使用參數output_path 如果您使用model_dir ,我想您必須事先創建該存儲桶,但您的優勢是可以在訓練期間實時保存工件(如果實例在 S3 上擁有權限)。 您可以查看我針對此特定案例的存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM