![](/img/trans.png)
[英]When using a Tensorflow Estimator in AWS Sagemaker, will the training job automatically save the model artifacts to /opt/ml/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.