我正在尝试运行一个Lambda函数来创建一个SageMaker培训作业,使用与前一个培训作业相同的参数。这是我的lambda函数:
def lambda_handler(event, context):
training_job_name = os.environ['training_job_name']
sm = boto3.client('sagemaker')
job = sm.describe_training_job(TrainingJobName=training_job_name)
training_job_prefix = 'new-randomcutforest-'
training_job_name = training_job_prefix+str(datetime.datetime.today()).replace(' ', '-').replace(':', '-').rsplit('.')[0]
print("Starting training job %s" % training_job_name)
resp = sm.create_training_job(
TrainingJobName=training_job_name,
AlgorithmSpecification=job['AlgorithmSpecification'],
RoleArn=job['RoleArn'],
InputDataConfig=job['InputDataConfig'],
OutputDataConfig=job['OutputDataConfig'],
ResourceConfig=job['ResourceConfig'],
StoppingCondition=job['StoppingCondition'],
VpcConfig=job['VpcConfig'],
HyperParameters=job['HyperParameters'] if 'HyperParameters' in job else {},
Tags=job['Tags'] if 'Tags' in job else [])
[...]我一直收到以下错误消息:
调用CreateTrainingJob操作时发生错误(ValidationException):不能覆盖Amazon算法的度量定义。请重试请求,而不指定度量定义。:ClientError回溯(最近一次调用):lambda_handler“/var/task/lambda_Function.py”,第96行,在lambda_handler StoppingCondition=job‘StoppingCondition’中。
,对于超级参数和标记,我得到了相同的错误。
我试图删除这些参数,但它们是必需的,所以这不是一个解决方案:
Parameter validation failed:
Missing required parameter in input: "StoppingCondition": ParamValidationError我试图对这些变量进行硬编码,但也导致了同样的错误。
这个函数与以前完全相同,但只适用于几个训练任务(大约5次),然后给出了这个错误消息。现在它完全停止工作,出现了相同的错误消息。知道为什么吗?
发布于 2020-04-13 07:09:01
在调用"sm.create_training_job“之前,删除MetricDefinitions键。要做到这一点,请从“AlgorithmSpecification”字典中弹出该键。
job['AlgorithmSpecification'].pop('MetricDefinitions',None)发布于 2019-10-27 05:30:52
很难确切地说出这里到底出了什么问题,以及为什么你以前工作的超视距表不起作用。也许你可以把它们交给新的工作,而不是直接把它们打印出来,以便能够检查它们。
沿着这条线走..。
training_job_prefix = 'new-randomcutforest-'..。我将冒险猜测,并假设您正在尝试运行RCF。algo所需的超参数记录在这里:https://docs.aws.amazon.com/sagemaker/latest/dg/rcf_hyperparameters.html
https://stackoverflow.com/questions/58170202
复制相似问题