如何在Keras中自动微调网络?

时间:2017-09-18 05:31:00

标签: python neural-network deep-learning keras

如何自动调整网络,而不是每次手动调整隐藏层数和历元数? (使用Keras)

from keras.models import Sequential
from keras.layers import Dense
import numpy

seed = 9
numpy.random.seed(seed)

from pandas import read_csv
filename = 'BBCN.csv'
dataframe = read_csv(filename)

array = dataframe.values
x = array[:,0 : 11]
y = array[:, 11]

model = Sequential()
model.add(Dense(11, input_dim=11, kernel_initializer = 'uniform', z = 'relu'))
model.add(Dense(8, kernel_initializer = 'uniform', activation = 'relu'))
model.add(Dense(8, kernel_initializer = 'uniform', activation = 'relu'))
model.add(Dense(1, kernel_initializer = 'uniform', activation = 'sigmoid'))          

model.compile(loss='binary_crossentropy', optimizer ='adam', metrics = ['accuracy'])

model.fit(x, y,nb_epoch = 50, batch_size = 10 )

scores = model.evaluate(x,y)
print("%s, %.2f%%" % (model.metrics_names[1], scores[1]*100))

我需要的结果是显示过程和准确度的百分比。

非常感谢!

1 个答案:

答案 0 :(得分:1)

你可以从一些超参数的简单循环开始,然后用这些参数训练一些时期,然后比较结果。

您还可以查看网格搜索,这是一种更系统的方法。基本上,您设置了一个创建模型的函数,并将其与一组您想要尝试的超参数和一组值一起使用。有关更多详细信息和样板代码I recommend this tutorial