具有大数据集的Keras模型的超参数优化

时间:2018-08-21 01:28:15

标签: python optimization keras talos

我想在Keras模型上执行超参数优化。问题在于数据集很大,通常在训练中我使用fit_generator从磁盘上批量加载数据,但是像SKlearn Gridsearch,Talos等常用软件包仅支持fit方法。 / p>

我尝试使用以下方法将整个数据加载到内存中:

train_generator = train_datagen.flow_from_directory(
    original_dir,
    target_size=(img_height, img_width),
    batch_size=train_nb,
    class_mode='categorical')
X_train,y_train = train_generator.next()

但是执行网格搜索时,操作系统会因为占用大量内存而将其杀死。 我还尝试将数据集的采样率降低到仅25%,但是它仍然太大。

有人在与我相同的情况下有经验吗?您能否分享对大型数据集执行超参数优化的策略?

从@ dennis-ec的答案中,我尝试在此处遵循SkOpt的教程:http://slashtutorial.com/ai/tensorflow/19_hyper-parameters/,它是非常全面的教程

2 个答案:

答案 0 :(得分:1)

在我看来,GridSearch并不是用于优化超参数的好方法,尤其是在深度学习中,因为您有许多超参数。

我建议贝叶斯超参数优化。 Here是有关如何使用skopt实施此操作的教程。如您所见,您需要编写一个函数来进行训练并返回验证分数以进行优化,因此API不在乎是否使用来自keras的fit或fit_generator。

答案 1 :(得分:1)

看到这个问题:how use grid search with fit generator in keras

第一个答案似乎可以回答您的问题。