machine-learning - 无法克隆对象 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>
,因为构造函数要么不设置或不修改参数层
解决方案
尝试更换
layers=[[150], [160,100], [140,100,500]]
和
layers=[(150), (160,100), (140,100,500)]
推荐阅读
- java - 存储相互依赖的 JsonObjects
- azure - Azure 持久函数、事件中心、事件网格以链接函数
- r - 了解 dplyr 中的 mutate 函数
- node.js - 在 loopback4 中集成 BullMonitorExpress。但队列未反映在 BullMonitorExpress 仪表板中
- informatica - 如何在 informatica power center 10.5 中启用二进制功能
- javascript - 在javascript中为音频元素添加停止/播放按钮
- javascript - 快速排序。为什么 Python 和 Javascript 中的类似实现差异如此显着?
- javascript - 页面有多个视频用于不同的视口。如何使用单个播放按钮播放正确的?
- javascript - 如何使用从第三方 API 的对象数组中获取的值动态映射图标
- python - 如何定义零表示的元素等于一个值?