具有大数据集的 Keras 模型的超参数优化
Hyperparameter Optimization for Keras model with large dataset
我想对我的 Keras 模型执行超参数优化。问题是数据集很大,一般在训练中我使用fit_generator
从磁盘批量加载数据,但是像SKlearn Gridsearch,Talos等常见的包只支持fit
方法。
我试图将整个数据加载到内存中,方法是:
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()
但是在执行 gridsearch 时,OS 由于占用大量内存而将其终止。
我还尝试将我的数据集采样率降低到仅 25%,但它仍然太大了。
有谁和我经历过相同的场景吗?您能否分享您对大型数据集执行超参数优化的策略?
根据@dennis-ec 的回答,我尝试按照此处的 SkOpt 教程进行操作:http://slashtutorial.com/ai/tensorflow/19_hyper-parameters/ 这是一个非常全面的教程
在我看来,GridSearch 不是超参数优化的好方法,尤其是在深度学习中,您有很多超参数。
我推荐贝叶斯超参数优化。 Here 是如何使用 skopt 实现它的教程。如您所见,您需要编写一个函数来执行训练和 return 验证分数以进行优化,因此 API 不关心您是使用 fit 还是来自 keras 的 fit_generator。
看到这个问题:how use grid search with fit generator in keras
第一个答案似乎回答了你的问题。
我想对我的 Keras 模型执行超参数优化。问题是数据集很大,一般在训练中我使用fit_generator
从磁盘批量加载数据,但是像SKlearn Gridsearch,Talos等常见的包只支持fit
方法。
我试图将整个数据加载到内存中,方法是:
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()
但是在执行 gridsearch 时,OS 由于占用大量内存而将其终止。 我还尝试将我的数据集采样率降低到仅 25%,但它仍然太大了。
有谁和我经历过相同的场景吗?您能否分享您对大型数据集执行超参数优化的策略?
根据@dennis-ec 的回答,我尝试按照此处的 SkOpt 教程进行操作:http://slashtutorial.com/ai/tensorflow/19_hyper-parameters/ 这是一个非常全面的教程
在我看来,GridSearch 不是超参数优化的好方法,尤其是在深度学习中,您有很多超参数。
我推荐贝叶斯超参数优化。 Here 是如何使用 skopt 实现它的教程。如您所见,您需要编写一个函数来执行训练和 return 验证分数以进行优化,因此 API 不关心您是使用 fit 还是来自 keras 的 fit_generator。
看到这个问题:how use grid search with fit generator in keras
第一个答案似乎回答了你的问题。