如何解决TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是实现 ABC 中的“NoneType”
我正在使用 [this][1] api 在 ANN 中实现人工蜂群优化。但我收到此错误。这是我的代码:
def ANN(optimizer = "adam",neurons = 32,batch_size = 32,epochs = 50,activation = "relu",patience =5,loss = 'mse'):
model = Sequential()
model.add(Dense(neurons,input_dim=look_back,activation= activation))
model.add(Dense(neurons,activation= activation))
model.add(Dense(1))
model.compile(optimizer = optimizer,loss = loss)
early_stopping = EarlyStopping(monitor = "loss",patience = patience)
history = model.fit(x_train,y_train,batch_size = batch_size,epochs = epochs,callbacks = [early_stopping],verbose = 0)
return model
boundaries = [(0,2),(0,(10,100),(20,50),(3,20)]
def performance(x_train,x_test,y_test,optimizer = None,activation = None,loss = None,batch_size = None,neurons = None,epochs = None,patience=None):
model = ANN(optimizer=optimizer,activation= activation,loss=loss,batch_size=batch_size,neurons= neurons,patience=patience)
trainScore = model.evaluate(x_train,verbose=0)
print('Train Score: %.2f MSE (%.2f RMSE)' % (trainScore,math.sqrt(trainScore)))
testScore = model.evaluate(x_test,verbose=0)
print('Test Score: %.2f MSE (%.2f RMSE)' % (testScore,math.sqrt(testScore)))
trainPredict = model.predict(x_train)
testPredict = model.predict(x_test)
#calculate mean absolute percent error
trainMAPE = mean_absolute_error(y_train,trainPredict)
testMAPE = mean_absolute_error(y_test,testPredict)
return print('testMAPE: %.2f MAPE' % trainMAPE),print('testMAPE: %.2f MAPE' % testMAPE)
writer = pd.ExcelWriter('/content/Scores.xlsx')
for sheetNum in range(1,5):
dataframe = pd.read_excel('Fri.xlsx',sheet_name='Sheet'+str(sheetNum))
# load the dataset
dataset = dataframe.values
dataset = dataset.astype('float32')
train_size = int(len(dataset) * 0.48)
test_size = len(dataset) - train_size
train,test = dataset[0:train_size,:],dataset[train_size:len(dataset),:]
# reshape into X=t and Y=t+1
look_back = 10
x_train,y_train = create_dataset(train,look_back)
x_test,y_test = create_dataset(test,look_back)
# normalize the dataset
scaler = MinMaxScaler(feature_range=(0,1))
x_train = scaler.fit_transform(x_train)
x_test = scaler.fit_transform(x_test)
abc_obj = abc(performance(x_train,y_test),boundaries)
abc_obj.fit()
#Get solution obtained after fit() execution:
solution = abc_obj.get_solution()
这是我的错误:
TypeError Traceback (most recent call last)
<ipython-input-38-f9098d8d18fc> in <module>()
23 x_train = scaler.fit_transform(x_train)
24 x_test = scaler.fit_transform(x_test)
---> 25 abc_obj = abc(performance(x_train,boundaries)
26 abc_obj.fit()
27
2 frames
/usr/local/lib/python3.7/dist-packages/keras/layers/core.py in __init__(self,units,activation,use_bias,kernel_initializer,bias_initializer,kernel_regularizer,bias_regularizer,activity_regularizer,kernel_constraint,bias_constraint,**kwargs)
1144 activity_regularizer=activity_regularizer,**kwargs)
1145
-> 1146 self.units = int(units) if not isinstance(units,int) else units
1147 self.activation = activations.get(activation)
1148 self.use_bias = use_bias
TypeError: int() argument must be a string,a bytes-like object or a number,not 'NoneType'
你能帮我解决这个问题吗?我想我没有正确定义功能“性能”。但我不明白我怎样才能让它变得更好。 [1]:https://pypi.org/project/beecolpy/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。