当前位置: 首页 > 知识库问答 >
问题:

更改AWS SageMaker培训作业上的模型文件保存位置

欧阳俊捷
2023-03-14

我试图在AWS上运行自定义python/skLearning sagemaker脚本,基本上从这些例子中学习:https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb

如果定义参数、训练模型并输出文件,所有操作都正常:

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)

在这种情况下,模型存储在不同的自动生成的桶上,这是我不想要的。我想得到输出(. joblib文件)在同一个s3桶我采取数据。所以我添加了参数moder-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]没有这样的文件或目录:'s3://path/to/model/model。作业库“

如果我在训练脚本中硬编码输出路径,也会发生同样的情况。

因此,主要的问题是,如何在我选择的存储桶中获取输出文件?

共有1个答案

龚镜
2023-03-14

定义估计器时,可以使用参数output_path。如果您使用model_dir,我猜您必须事先创建该桶,但是您有一个优势,即工件可以在训练期间实时保存(如果实例在S3上有权限)。你可以看看我对这个具体案例的回购。

 类似资料:
  • 我想在SageMaker找一份当地的培训工作。 根据这个AWS笔记本(https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/mxnet_gluon_mnist/mxnet_mnist_with_gluon_local_mode.ipynb),我能够在本地进行训练和预测。 有没有办法

  • 我想对小部件(Yii)的css文件进行更改。如果我不想更改核心文件,我必须将更改后的css放在哪里?

  • 我想训练自己的自定义模型。我可以从哪里开始? 我使用这个样本数据来训练一个模型: 基本上,我想从给定的输入中找出一些无意义的文本。 我尝试了opennlp开发文档中给出的以下示例代码,但出现了错误:Model与name finder不兼容!

  • 我使用deeplearning4j对我的数据的第一部分训练了一个模型并保存了它。 现在,我想在下一部分数据上训练这个保存的模型。

  • 也许有人遇到过这样的问题:当sagemaker.tensorflow.TensorFlow类在SageMaker中创建一个训练作业时,我需要设置一个参数,负责在S3中保存训练脚本代码,以便其路径精确:sagemaker_submit_directory或可能module_dir-我不确定。默认情况下,它看起来像这样: 我需要在bucket name和job name之间加上一些东西。我怎么做?我试

  • 问题内容: 我有以下代码可以处理服务器上的文件上传。但是如何将文件保存到服务器上的特定位置 问题答案: 您应该使用which代替一个目录。 或者,如果你真的想临时文件移动到另一个位置 之后 ,使用。