Keras中的ValueError:我怎样才能安装模型?

Lau*_*uza 5 neural-network python-3.x keras

我正在尝试使用keras来拟合我的模型(神经网络),但我得到了ValueError错误.

进口keras

from keras.models import Sequential

from keras.layers import Dense


classificador_rede_neural = Sequential()


# # Camadas Ocultas e de Saída

# camadas ocultas = (entradas + saídas)/2 #estimando o numero de neurônios em camada oculta
# 
# temos:len(train.columns) - 1   atributos previsores
# 
# 1 classe


#len(train.columns)


camadas_ocultas = round(len(train.columns)/2)



print(camadas_ocultas)


classificador_rede_neural.add(Dense(units=camadas_ocultas, activation='relu',input_dim =len(train.columns) ))#primeira camada


classificador_rede_neural.add(Dense(units=camadas_ocultas, activation='relu' ))#segunda camada


classificador_rede_neural.add(Dense(units=1, activation='sigmoid' ))#camada de saída. a saída é binária, logo units=1
Run Code Online (Sandbox Code Playgroud)

classificador_rede_neural.compile(优化= '亚当',损耗= 'binary_crossentropy',度量= [ '准确性'])

classificador_rede_neural.fit(X_train2,y_train2,batch_size=10,epochs =100)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

 ValueError: Please provide as model inputs either a single array or a list of arrays. You passed: x=              sload        dload  spkts  dpkts  swin  dwin  smean  dmean  \
    0      1.803636e+08     0.000000      2      0     0     0    248      0   
    1      8.810000e+08     0.000000      2      0     0     0    881      0   
    2      8.544000e+08     0.000000      2      0     0     0    534      0   
    3      6.000000e+08     0.000000      2      0     0     0    450      0   
    4      8.504000e+08     0.000000      2      0     0     0   1063      0   
    5      1.045333e+09     0.000000      2      0     0     0    392      0   
    6      1.306667e+09     0.000000      2      0     0     0    980      0   
    7      1.977143e+08     0.000000      2      0     0     0    692      0   

[82332 rows x 22 columns]
Run Code Online (Sandbox Code Playgroud)

我怎么能适合这个模型?我的数据有什么问题?

完整的代码> https://pastebin.com/jE7erEJs

Col*_*der 17

我认为问题在于您将整个pandas数据集与列标题和索引列一起传递给模型.为了训练您的数据模型,首先将其转换为numpy数组X_train2.values,y_train2.values因为Keras模型接受numpy数组而不是pandas数据集作为输入

类似的问题
Pandas DataFrame和Keras

关于Keras的顺序模型的文档
https://keras.io/models/sequential/

编辑以回答评论
不要单独转换每个列,这是没有意义的.假设您有一个通用数据集,df其中包含一个名为" labels您必须执行的操作" 的列

labels = df["labels"].copy()
df.drop(["labels"], axis=1, inplace=True)
model.fit(x=df.values, y=labels.values)
Run Code Online (Sandbox Code Playgroud)