我使用scikit-learn自定义管道(sklearn.pipeline.Pipeline
)和RandomizedSearchCV
结合使用来进行超参数优化。这个很好用。
现在,我想插入一个keras模型作为管道的第一步。模型参数应优化。然后计算(拟合)的keras模型应该在以后的管道中由其他步骤使用,所以我认为我必须将模型存储为全局变量,以便其他管道步骤可以使用它。是这样吗?
我知道keras为scikit-learn API提供了一些 wrappers,但问题是这些 wrappers 已经做了分类/回归,但我只想计算keras模型,而不是其他。
如何才能做到这一点?
例如,我有一个返回模型的方法:
def create_model(file_path, argument2,...):
...
return model
该方法需要一些固定的参数,如file_path
等。但是不需要X
和y
(或者可以忽略)。应优化模型的参数(层数等)。).
2条答案
按热度按时间nwnhqdif1#
你需要将你的Keras模型 Package 成Scikit learn模型,然后像往常一样继续。
下面是一个简单的例子(为了简洁,我省略了导入)
以下是一篇完整的博客文章,其中有这个和许多其他例子:Scikit-learn Pipeline Examples
dauxcl2d2#
这是对sklearn文档中RBM示例的修改,但神经网络在keras中实现,具有tensorflow后端。