我之前曾使用Scikit-learn的GridSearchCV优化模型的超参数,但只是想知道是否存在类似的工具来优化Tensorflow的超参数(例如 历元数,学习率,滑动窗口大小等 )。
如果没有,如何实现有效运行所有不同组合的代码段?
使用Tensorflow进行网格搜索的另一个可行的(已记录)选项是Ray Tune。它是用于超参数调整的可扩展框架,专门用于深度学习/强化学习。
您可以在此处尝试快速教程。
它还负责大约10行Python中的Tensorboard日志记录和有效的搜索算法(即HyperOptIntegration和HyperBand)。
HyperOpt
from ray import tune def train_tf_model(config): for i in range(num_epochs): accuracy = train_one_epoch(model) tune.report(acc=accuracy) tune.run(train_tf_model, config={ "alpha": tune.grid_search([0.2, 0.4, 0.6]), "beta": tune.grid_search([1, 2]), })
(免责声明:我为这个项目做出了积极的贡献!)