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

Python实现ANN时遭遇UnimplementedError错误,寻求解决方法

解决TensorFlow中ANN训练的UnimplementedError错误

问题背景

尝试用Python实现人工神经网络(ANN),训练阶段触发UnimplementedError错误,相关代码及报错信息如下:

代码示例

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

from sklearn.preprocessing import StandardScaler
sc = StandardScaler(with_mean=False)
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

import tensorflow as tf

ann = tf.keras.models.Sequential()

# 添加第一个隐藏层
ann.add(tf.keras.layers.Dense(units=6,activation="relu"))

# 添加第二个隐藏层
ann.add(tf.keras.layers.Dense(units=6,activation="relu"))

ann.add(tf.keras.layers.Dense(units=1,activation="sigmoid"))
ann.compile(optimizer="adam",loss="binary_crossentropy",metrics=['accuracy'])
ann.fit(X_train,Y_train,batch_size=32,epochs = 100)

报错信息

WARNING:tensorflow:Keras正在基于类数组数据进行训练/拟合/评估。Keras对此格式可能未做优化,如果你的输入数据格式受TensorFlow I/O支持,建议使用其加载Dataset替代。
    Epoch 1/100
    ---------------------------------------------------------------------------
    UnimplementedError                        Traceback (most recent call last)
    Cell In[37], line 2
          1 # 拟合ANN
    ----> 2 ann.fit(X_train,Y_train,batch_size=32,epochs = 100)

解决方案

  • 修正数据类型:TensorFlow要求输入数据为浮点型,检查并转换数据类型:

    X_train = X_train.astype('float32')
    Y_train = Y_train.astype('float32')
    
  • 调整标签维度:确保标签数据为二维数组(形状为(样本数, 1)),若为一维则重塑:

    Y_train = Y_train.reshape(-1, 1)
    Y_test = Y_test.reshape(-1, 1)
    
  • 优化标准化配置:移除with_mean=False参数,使用默认的中心化+标准化,提升模型稳定性:

    sc = StandardScaler()
    X_train = sc.fit_transform(X_train)
    X_test = sc.transform(X_test)
    
  • 升级TensorFlow版本:旧版本可能存在数组兼容问题,升级至稳定版:

    pip install --upgrade tensorflow
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:05:05