Keras model.fit报错:Unrecognized data type问题求助
解决Keras model.fit()中ValueError: Unrecognized data type问题
错误原因
你遇到的ValueError本质是传入model.fit()的scaled_train_samples是MinMaxScaler类的实例对象,而非经过归一化处理后的numpy数组。即便你认为x是np.ndarray类型,代码里大概率漏了执行数据转换的关键步骤。
解决步骤
修正数据归一化代码
必须调用scaler的fit_transform()或fit()+transform()方法生成真正的归一化样本数组,示例代码:from sklearn.preprocessing import MinMaxScaler # 初始化归一化器 scaler = MinMaxScaler() # 对训练数据拟合并转换,得到numpy数组格式的归一化样本 scaled_train_samples = scaler.fit_transform(train_samples)注意:不要直接把
scaled_train_samples赋值为MinMaxScaler(),这只会创建一个scaler对象,不是处理后的数据。验证数据类型
在执行model.fit()前,打印数据类型确认:print(type(scaled_train_samples)) # 输出应为 <class 'numpy.ndarray'>如果输出仍是
<class 'sklearn.preprocessing._data.MinMaxScaler'>,说明前面的转换步骤有误,需要检查train_samples的格式是否符合要求(比如是否是二维数组)。重新执行训练代码
确认scaled_train_samples是numpy数组后,再次运行:model.fit(x=scaled_train_samples, y=train_labels, batch_size=10, epochs=30, shuffle=True, verbose=2)
常见误区提示
很多教程会把scaler初始化和数据转换合并展示,容易忽略fit_transform()这一核心步骤,直接将scaler对象传入模型训练,从而触发类型不匹配的错误。
内容的提问来源于stack exchange,提问作者Kawther Hamad
相关产品推荐
相关产品推荐

