我正在使用SageMaker TensorFlow估计器进行训练,并使用output_path
参数和值为s3://<bucket>/<prefix>/
为我的模型工件指定输出路径。
模型训练后,将在指定的<training_job_name>/output
中创建一个名为output_path
的目录。
我遇到的问题是,用于培训的源代码也默认情况下也上载到S3,但不是放在s3://<bucket>/<prefix>/<training_job_name>/source
中,而是放在s3://<bucket>/<training_job_name>/source
中。
那么我如何为训练作业的源代码指定S3上传路径,以使其使用output_path
的存储桶AND前缀名称?
答案 0 :(得分:3)
您是否尝试过使用“ code_location”参数:https://sagemaker.readthedocs.io/en/stable/estimators.html指定源代码的位置?
下面是使用code_location的代码段示例
from sagemaker.tensorflow import TensorFlow
code-path = "s3://<bucket>/<prefix>"
output-path = "s3://<bucket>/<prefix>"
abalone_estimator = TensorFlow(entry_point='abalone.py',
role=role,
framework_version='1.12.0',
training_steps= 100,
image_name=image,
evaluation_steps= 100,
hyperparameters={'learning_rate': 0.001},
train_instance_count=1,
train_instance_type='ml.c4.xlarge',
code_location= code-path,
output_path = output-path,
base_job_name='my-job-name'
)
答案 1 :(得分:1)
我相信@ user3458797显示的code_location参数是正确的答案。
output_path仅配置S3位置以保存训练结果(模型工件和输出文件)。
https://sagemaker.readthedocs.io/en/stable/estimators.html
除非您在培训期间将文件移至/ opt / ml / model或使用code_location参数,否则您的培训脚本不会保存在“ output_path”中。
请让我知道是否有任何需要澄清的内容。