sagemaker官方教程是否会产生AttributeError,如何解决?

Does the sagemaker official tutorial generate an AttributeError, and how to solve it?

我正在执行 AWS Sagemaker tutorial,但我认为步骤 4a 中存在错误。特别是,在第 3 行,我被指示输入:

     s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket_name, prefix), content_type='csv')

我得到了错误

----> 3 s3_input_train = sagemaker.s3_input(s3_data='s3://{}/{}/train'.format(bucket_name, prefix), content_type='csv')

AttributeError: module 'sagemaker' has no attribute 's3_input'

确实,使用 dir 表明 sagemaker 没有名为 s3_input 的属性。如何解决这个问题,以便我可以在教程中继续前进?我尝试使用 session.inputs,但这会将我重定向到一个页面,上面写着 session 已被弃用,并建议我使用 sagemaker.inputs.TrainingInput 而不是 sagemaker.s3_inputs。这是前进的好方法吗?

感谢大家的帮助和耐心等待!

使用 sagemaker.inputs.TrainingInput 而不是 sagemaker.s3_inputs 可以使该代码单元正常运行。这是一个合适的解决方案,尽管可能还有另一种方法。

步骤 4.b 也有需要更新的代码

sess = sagemaker.Session()
xgb = sagemaker.estimator.Estimator(containers[my_region],role, train_instance_count=1, train_instance_type='ml.m4.xlarge',output_path='s3://{}/{}/output'.format(bucket_name, prefix),sagemaker_session=sess)
xgb.set_hyperparameters(max_depth=5,eta=0.2,gamma=4,min_child_weight=6,subsample=0.8,silent=0,objective='binary:logistic',num_round=100)

使用参数 train_instance_counttrain_instance_type 已在更高版本中更改 (https://sagemaker.readthedocs.io/en/stable/v2.html#parameter-and-class-name-changes)。

进行这些更改解决了使用 conda_python3 内核的教程的错误。