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 解决了问题