Keras AttributeError: ‘list’ 对象没有 ‘ndim’ 属性

我在 Jupyter Notebook 中运行一个 Keras 神经网络模型(Python 3.6)

我遇到了以下错误

AttributeError: ‘list’ 对象没有 ‘ndim’ 属性

在调用 Keras.model 的 .fit() 方法后

model  = Sequential()model.add(Dense(5, input_dim=len(X_data[0]), activation='sigmoid' ))model.add(Dense(1, activation = 'sigmoid'))model.compile(loss='mean_squared_error', optimizer='adam', metrics=['acc'])model.fit(X_data, y_data, epochs=20, batch_size=10)

我检查了 Anaconda3 中 Keras 的 requirements.txt 文件,numpy、scipy 和 six 模块的版本都是最新的。

如何解释这个 AttributeError?

完整的错误消息如下(似乎与 Numpy 有些相关):

————————————————————————— AttributeError Traceback (most recent call last) in () 3 model.add(Dense(1, activation = ‘sigmoid’)) 4 model.compile(loss=’mean_squared_error’, optimizer=’adam’, metrics=[‘acc’]) —-> 5 model.fit(X_data, y_data, epochs=20, batch_size=10)

~\Anaconda3\lib\site-packages\keras\models.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs) 963 initial_epoch=initial_epoch, 964 steps_per_epoch=steps_per_epoch, –> 965 validation_steps=validation_steps) 966 967 def evaluate(self, x=None, y=None,

~\Anaconda3\lib\site-packages\keras\engine\training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs) 1591
class_weight=class_weight, 1592 check_batch_axis=False, -> 1593 batch_size=batch_size) 1594 # Prepare validation data. 1595 do_validation = False

~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_batch_axis, batch_size) 1424
self._feed_input_shapes, 1425
check_batch_axis=False, -> 1426 exception_prefix=’input’) 1427 y = _standardize_input_data(y, self._feed_output_names,
1428 output_shapes,

~\Anaconda3\lib\site-packages\keras\engine\training.py in _standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix) 68 elif isinstance(data, list): 69 data = [x.values if x.class.name == ‘DataFrame’ else x for x in data] —> 70 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 71 else: 72 data = data.values if data.class.name == ‘DataFrame’ else data

~\Anaconda3\lib\site-packages\keras\engine\training.py in (.0) 68 elif isinstance(data, list): 69 data = [x.values if x.class.name == ‘DataFrame’ else x for x in data] —> 70 data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data] 71 else: 72 data = data.values if data.class.name == ‘DataFrame’ else data

AttributeError: ‘list’ 对象没有 ‘ndim’ 属性


回答:

model.fit 期望 xy 是 numpy 数组。看起来你传递了一个列表,它试图通过读取 numpy 数组的 ndim 属性来获取输入的形状,但失败了。

你可以简单地使用 np.array 进行转换:

import numpy as np...model.fit(np.array(train_X),np.array(train_Y), epochs=20, batch_size=10)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注