2017-06-02 114 views
0

当我跑我的Mac终端上的代码,以下错误发生:的Python:`Dense`只能接受1位置参数( '单位',)

Traceback (most recent call last): 
    File "data.py", line 20, in <module> 
    net.add(Dense(3,10)) 
    File "/Users/Superman/anaconda/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 43, in wrapper 
    str(list(args[1:]))) 
TypeError: `Dense` can accept only 1 positional arguments ('units',), but you passed the following positional arguments: [3, 10] 

这是我的代码:

import pandas as pd 
from random import shuffle 
datafile='data.xls' 
data=pd.read_excel(datafile) 
data=data.as_matrix() 
shuffle(data) 
p=0.8 
train=data[:int(len(data)*p),:] 
test=data[int(len(data)*p):,:] 

from keras.models import Sequential 
from keras.layers.core import Dense,Activation 

netfile='net.model' 

net=Sequential() 
net.add(Dense(3,10)) 
net.add(Activation('relu')) 
net.add(Dense(10,1)) 
net.add(Activation('sigmoid')) 

net.compile(亏损= 'binary_crossentropy',优化= '亚当',class_mode = “二进制”)

net.fit(train[:,:3],train[:,3],nb_epoch=1000,batch_size=1) 
net.save_weights(netfile) 

predict_result=net.predict_classes(train[:,:3]).reshape(len(train)) 

from cm_plot import* 
cm_plot(train[:,3],predict_result).show() 

回答

0

您是否尝试过定义在F中的输入数量第一层: net.add(Dense(3,input_shape = 10))

相关问题