Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Keras AttributeError:&x27;列表';对象没有属性';ndim&x27;_Python_Tensorflow_Machine Learning_Keras_Jupyter Notebook - Fatal编程技术网

Python Keras AttributeError:&x27;列表';对象没有属性';ndim&x27;

Python Keras AttributeError:&x27;列表';对象没有属性';ndim&x27;,python,tensorflow,machine-learning,keras,jupyter-notebook,Python,Tensorflow,Machine Learning,Keras,Jupyter Notebook,我正在Jupyter笔记本(Python 3.6)中运行Keras神经网络模型 我得到以下错误 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.c

我正在Jupyter笔记本(Python 3.6)中运行Keras神经网络模型

我得到以下错误

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)
我检查了Keras(在Anaconda3中)的requirements.txt文件,numpy、scipy和六个模块版本都是最新的

什么可以解释这个属性错误

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

---------------------------------------------------------------------------AttributeError回溯(最近的调用) 最后)在() 3模型。添加(密集型(1,激活='sigmoid')) 4模型。编译(loss='mean_squared_error',optimizer='adam',metrics=['acc']) ---->5模型拟合(X_数据,y_数据,年代=20,批量大小=10)

~\Anaconda3\lib\site packages\keras\models.py适合(self,x,y, 批量大小、时代、详细、回调、验证拆分、, 验证数据、洗牌、类别权重、样本权重、初始历元、, 每个历元的步骤,验证步骤,**kwargs) 963初始纪元=初始纪元, 964步/u历元=步/u历元, -->965验证步骤=验证步骤) 966 967 def评估(自我,x=无,y=无

~\Anaconda3\lib\site packages\keras\engine\training.py in fit(self,x, y、 批量大小、时代、详细、回调、验证拆分、, 验证数据、洗牌、类别权重、样本权重、初始历元、, 每个历元的步骤,验证步骤,**kwargs)1591
类别重量=类别重量,1592检查批次轴=假, ->1593批次大小=批次大小)1594#准备验证数据。1595 do_验证=错误

中的~\Anaconda3\lib\site packages\keras\engine\training.py _标准化用户数据(自身、x、y、样本重量、类别重量、检查批次轴、批次大小)1424
自馈输入形状,1425
检查批次轴是否为假, ->1426例外情况(前缀为“输入”),1427 y=\U标准化\U输入\U数据(y,自.\U输入\U输出\U名称,
1428个输出形状

中的~\Anaconda3\lib\site packages\keras\engine\training.py _标准化输入数据(数据、名称、形状、检查批处理轴、异常前缀) 68 elif isinstance(数据、列表): 69数据=[x.值,如果x.名称=='DataFrame'否则x代表数据中的x] --->70数据=[np.如果x不是None,则展开_dims(x,1),如果x是数据中的x,则x.ndim==1,否则x为x] 71.其他: 72 data=data.values if data.名称==“DataFrame”else数据

中的~\Anaconda3\lib\site packages\keras\engine\training.py (.0) 68 elif isinstance(数据、列表): 69数据=[x.值,如果x.名称=='DataFrame'否则x代表数据中的x] --->70数据=[np.如果x不是None,则展开_dims(x,1),如果x是数据中的x,则x.ndim==1,否则x为x] 71.其他: 72 data=data.values if data.名称==“DataFrame”else数据

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)

我不知道您的培训数据的形状,但我怀疑您的
input\u dim
有错误。请尝试将其更改为
input\u dim=len(X\u data)
,如下所示:

model  = Sequential()
model.add(Dense(5, input_dim=len(X_data), 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)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, Conv2D, MaxPool2D, Dense

导入时,应使用
tensorflow.keras
而不是像这样使用
keras

model  = Sequential()
model.add(Dense(5, input_dim=len(X_data), 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)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, Conv2D, MaxPool2D, Dense
因为存在与
keras
模块相关的错误


参考:。

这就是问题所在。修复了它!但很有趣,因为在另一台计算机上,即使数据是双矩阵而不是numpy数组,Keras也可以运行。感谢您的帮助!X_数据有5个功能,y_数据有2个功能。输出数据可能是原因,尽管切换到numpy数组可以解决问题。是吗这是tensorflow 2.x的吗?