超参数调整以决定最优神经网络

我想根据一些标准找出最优的神经网络。这些标准如下:

  • 测试四种架构,分别为一层、两层、三层、四层隐藏层 + 输出层

  • 要测试的学习率:0.1, 0.01, 0.001

  • 要测试的周期数:10, 50, 100

  • 输入维度 = 20

输出应该是一张表,显示每种组合(共36行)。例如,对于一层隐藏层,学习率 = 0.1,周期数 = 10,准确率为X。

请查看我下面的代码:

#Function to create the modeldef create_model(layers,learn_rate):    model = Sequential()    for i, nodes in enumerate(layers):        if i==0:            model.add(Dense(nodes),input_dim = 20,activation = 'relu')        else:            model.add(Dense(nodes),activation = 'relu')       model.add(Dense(units = 4,activation = 'softmax'))     model.compile(optimizer=adam(lr=learn_rate), loss='categorical_crossentropy',metrics=['accuracy'])    return model#Initialization of variables#Here there are the four possible types of layers with the neurons in each.layers = [[20], [40, 20], [45, 30, 15],[32,16,8,4]]learn_rate = [0.1,0.01,0.001]epochs = [10,50,100]#GridSearchCV for hyperparameter tuningfrom keras.wrappers.scikit_learn import KerasClassifierfrom sklearn.model_selection import GridSearchCVmodel = KerasClassifier(build_fn = create_model, verbose = 0)param_grid = dict(layers = layers,learn_rate = learn_rate,epochs = epochs)grid = GridSearchCV(estimator = model, param_grid = param_grid,cv = 3)grid_result = grid.fit(train_x,train_y)

但是在我运行代码时,出现了以下错误:

RuntimeError: Cannot clone object <keras.wrappers.scikit_learn.KerasClassifier object at    0x000001AA272C7748>, as the constructor either does not set or modifies parameter layers

回答:

无法克隆对象并不是主要问题。这是模型生成函数中另一个错误的结果。
你在create_model()中有一些语法错误。请查看输出中“克隆问题”之前的错误。
这是修正后的函数:

from keras import optimizersdef create_model(layers, learn_rate):    model = Sequential()    for i, nodes in enumerate(layers):        if i==0:            model.add(Dense(nodes,input_dim = 20,activation = 'relu'))        else:            model.add(Dense(nodes,activation = 'relu'))    model.add(Dense(units = 4,activation = 'softmax'))     model.compile(optimizer=optimizers.adam(lr=learn_rate), loss='categorical_crossentropy',metrics=['accuracy'])     return model

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注