You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SageMaker线性训练报错:已转float32标签仍提示需float32格式

SageMaker线性学习器训练报错排查:标签格式不匹配问题

问题场景

已将训练数据上传至S3存储桶,转换了特征数据中float64类型的列到float32,随后通过SageMaker定义线性估算器执行训练时出现格式报错。

数据转换代码

float64_cols = list(X_train.select_dtypes(include='float64'))
X_train[float64_cols] = X_train[float64_cols].astype('float32')

SageMaker训练代码

linear = sagemaker.estimator.Estimator(container,
                                       role, 
                                       train_instance_count = 1, 
                                       train_instance_type = 'ml.c4.xlarge',
                                       output_path = output_location,
                                       sagemaker_session = sagemaker_session)

linear.set_hyperparameters(feature_dim = 147,
                           predictor_type = 'regressor',
                           mini_batch_size = 5,
                           epochs = 5,
                           num_models = 32,
                           loss = 'absolute_loss')

# pass in the training data from S3 to train the linear learner model
linear.fit({'train': s3_train_data})

报错信息

UnexpectedStatusException: Error for Training job linear-learner-2023-02-01-04-16-46-698: Failed. Reason: ClientError: Unable to execute the algorithm. Provided train label is in 'float32' format, 'float32' label is required. Please provide train dataset with 'float32' labels and try again., exit code: 2

问题排查与解决方案

报错信息存在描述矛盾,但结合你的操作流程,核心遗漏点是未处理标签列的格式:

  • 你的代码仅对特征矩阵X_train的float64列做了类型转换,但训练用的标签数据(通常是y_train)可能仍为float64格式,而SageMaker线性学习器要求标签必须是float32。
  • 若特征与标签存储在同一个DataFrame中,需确认标签列是否被纳入了float64_cols的转换范围——如果标签列是float64但未被包含(比如列名筛选遗漏),也会触发该报错。

修复步骤

  1. 检查标签列的数据类型:
    print(y_train.dtype)  # 若输出为float64则需要转换
    
  2. 将标签列转换为float32:
    y_train = y_train.astype('float32')
    
  3. 若特征与标签在同一DataFrame中,确保标签列被正确转换:
    # 假设标签列名为'label'
    if 'label' in X_train.columns and X_train['label'].dtype == 'float64':
        X_train['label'] = X_train['label'].astype('float32')
    
  4. 重新将转换后的完整数据集上传至S3,再执行训练任务。

内容的提问来源于stack exchange,提问作者macromind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 04:01:18