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

Colab运行TensorFlow DNN训练CLV模型报错ValueError: Expect x to be non-empty

问题排查与解决步骤

  • 第一步:校验输入数据集的基本信息
    运行以下代码确认数据集维度匹配、无空值:
    print("X_train维度:", X_train.shape)
    print("y_train维度:", y_train.shape)
    print("X_train是否存在空值:", X_train.isnull().any().any())
    print("y_train是否存在空值:", y_train.isnull().any())
    
    重点确认X_train和y_train的第一维数值完全一致,且都大于0。
  • 第二步:统一输入数据格式
    低版本Keras对pandas DataFrame输入的解析存在兼容问题,建议手动转换为numpy数组后传入fit方法,修改对应代码为:
    early_history = model.fit(X_train.values, y_train.values, 
                        epochs=EPOCHS, validation_split = 0.2, verbose=0, 
                        callbacks=[early_stop, tfdocs.modeling.EpochDots()])
    
    测试阶段可以先去掉回调参数,验证基础训练逻辑是否正常:
    # 最简测试代码
    model = build_model()
    test_history = model.fit(X_train.values, y_train.values, epochs=2, validation_split=0.2)
    
  • 第三步:核对数据集拆分逻辑
    确认此前拆分训练集、测试集的代码没有参数错误,比如train_test_split的test_size参数是否设置过大、是否误将测试集赋值给了X_train变量。
  • 第四步:确认模型输入形状和数据集匹配
    运行以下代码核对输入特征数是否一致:
    print("模型定义的输入特征数:", len(X_train.columns))
    print("实际X_train的特征数:", X_train.shape[1])
    
    两者必须完全相等,如果你在定义模型后修改过X_train的特征,需要重新运行build_model()生成新的模型再训练。
  • 第五步:排查框架版本兼容问题
    打印TensorFlow版本确认版本稳定性:
    import tensorflow as tf
    print(tf.__version__)
    
    如果你使用的是2.0以下的旧版本,建议升级到2.7~2.15之间的稳定版,避免框架本身的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:51:02