首页 > 解决方案 > 无法克隆对象 keras.wrappers

问题描述

      def try_and_error(layers, activation):
         model = Sequential()
         for i, nodes in enumerate(layers):
            if i==0:
                model.add(Dense(nodes,input_dim=train_X.shape[1]))#input layers 

                model.add(Activation(activation)) #Activation layer
            else:
                model.add(Dense(nodes))# Hidden Layers
                model.add(Activation(activation))#Activation Layers
          model.add(Dense(1)) # output layer

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



    layers=[[150], [160,100], [140,100,500]]
    activations = ['sigmoid', 'relu']
    param_grid = dict(layers=layers, activation=activations, batch_size= 
    [500,800,1000])
    grid = 
    RandomizedSearchCV(
                      estimator=KerasClassifier(build_fn=try_and_error
                                                ,epochs=100,verbose=0), 
                      param_distributions =param_grid)


     grid_result= grid.fit(train_X,train_y)}

这是遇到的错误,即使我已经尝试过这个,gridsearchcv 结果仍然相同。 RuntimeError: Cannot clone object <keras.wrappers.scikit_learn.KerasClassifier object at 0x7f3d7959c390>,因为构造函数要么不设置或不修改参数层

标签: machine-learningkerasscikit-learndeep-learningdata-science

解决方案


尝试更换

layers=[[150], [160,100], [140,100,500]]

layers=[(150), (160,100), (140,100,500)]

推荐阅读