Getting KeyError : 'callable_inputs' when trying to save a TF model in S3 bucket
Getting KeyError : 'callable_inputs' when trying to save a TF model in S3 bucket
我正在使用 sagemaker 2.5.1 和 tensorflow 2.3.0
奇怪的是相同的代码以前可以工作,我能想到的唯一变化是两个库的新版本
这似乎是 SageMaker 的错误。
我假设您正在使用 TensorFlow
估计器来训练模型。像这样:
estimator = TensorFlow(
entry_point='script.py',
role=role,
train_instance_count=1,
train_instance_type='ml.p3.2xlarge',
framework_version='2.3.0',
py_version='py37',
script_mode=True,
hyperparameters={
'epochs': 100,
'batch-size': 256,
'learning-rate': 0.001
}
)
如果是这种情况,则在启用调试器回调时,TensorFlow 2.2 或 TensorFlow 3.3 会导致此错误。要解决此问题,您可以将 debugger_hook_config
设置为 False
:
estimator = TensorFlow(
entry_point='script.py',
role=role,
train_instance_count=1,
train_instance_type='ml.p3.2xlarge',
framework_version='2.3.0',
py_version='py37',
script_mode=True,
debugger_hook_config=False,
hyperparameters={
'epochs': 100,
'batch-size': 256,
'learning-rate': 0.001
}
)
问题实际上来自smdebug版本0.9.1
降级到 0.8.1 解决了问题
我正在使用 sagemaker 2.5.1 和 tensorflow 2.3.0 奇怪的是相同的代码以前可以工作,我能想到的唯一变化是两个库的新版本
这似乎是 SageMaker 的错误。
我假设您正在使用 TensorFlow
估计器来训练模型。像这样:
estimator = TensorFlow(
entry_point='script.py',
role=role,
train_instance_count=1,
train_instance_type='ml.p3.2xlarge',
framework_version='2.3.0',
py_version='py37',
script_mode=True,
hyperparameters={
'epochs': 100,
'batch-size': 256,
'learning-rate': 0.001
}
)
如果是这种情况,则在启用调试器回调时,TensorFlow 2.2 或 TensorFlow 3.3 会导致此错误。要解决此问题,您可以将 debugger_hook_config
设置为 False
:
estimator = TensorFlow(
entry_point='script.py',
role=role,
train_instance_count=1,
train_instance_type='ml.p3.2xlarge',
framework_version='2.3.0',
py_version='py37',
script_mode=True,
debugger_hook_config=False,
hyperparameters={
'epochs': 100,
'batch-size': 256,
'learning-rate': 0.001
}
)
问题实际上来自smdebug版本0.9.1 降级到 0.8.1 解决了问题