我以前用过Scikit Learn的GridSearchCv来优化我的模型的超参数,但是我想知道是否存在类似的工具来优化张量流的超参数(例如时间段数、学习速率、滑动窗口大小等)。
如果不是,我如何实现有效地运行所有不同组合的代码片段?
最佳答案
使用TensorFlow进行网格搜索的另一个可行(并记录在案)选项是Ray Tune。它是一个可扩展的超参数调优框架,专门用于深度学习/强化学习。
你可以试试a fast tutorial here。
它还处理了大约10行python中的tensorboard日志记录和有效的搜索算法(例如,HyperOpt
集成和HyperBand)。
import ray
from ray import tune
def train_tf_model(config, tune_reporter): # 1 new arg for reporting results
# ... train here ....
# ... train here ....
# ... train here ....
pass
ray.init()
tune.run(train_tf_model,
stop={ "mean_accuracy": 100 },
config={
"alpha": tune.grid_search([0.2, 0.4, 0.6]),
"beta": tune.grid_search([1, 2]),
})
(免责声明:我积极参与这个项目!)