Lar*_*rry 13 python machine-learning keras tensorflow jupyter-notebook
我在Jupyter Notebook(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)
Run Code Online (Sandbox Code Playgroud)
我检查了Keras(在Anaconda3中)的requirements.txt文件,numpy,scipy和six模块版本都是最新版本.
什么可以解释这个AttributeError?
完整的错误消息如下(似乎与Numpy有点相关):
-------------------------------------------------- ------------------------- AttributeError Traceback(最近一次调用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#准备验证数据.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.上课.name =='DataFrame' else x for data 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.上课.name =='DataFrame'其他数据
〜\ Anaconda3\lib\site-packages\keras\engine\training.py in(.0)68 elif isinstance(data,list):69 data = [x.values if x.上课.name =='DataFrame' else x for data 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.上课.name =='DataFrame'其他数据
AttributeError:'list'对象没有属性'ndim'
Cth*_*Sky 30
model.fit期望x和y是numpy数组.好像你传递了一个列表,它试图通过读取ndimnumpy数组的属性来获得输入的形状并且失败了.
你可以使用np.array以下方法简单地转换
import numpy as np
...
model.fit(np.array(train_X),np.array(train_Y), epochs=20, batch_size=10)
Run Code Online (Sandbox Code Playgroud)
导入时,您应该使用tensorflow.keras而不是keras这样:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, Conv2D, MaxPool2D, Dense
Run Code Online (Sandbox Code Playgroud)
因为存在与keras模块相关的错误。
参考:这里。
| 归档时间: |
|
| 查看次数: |
30845 次 |
| 最近记录: |