我正在寻找直接用Tensorflow(不是Keras或Tflearn)编写的代码的超参数调整包。你能提出一些建议吗?

最佳答案

通常,您不需要将超参数优化逻辑与优化模型结合使用(除非您的超参数优化逻辑特定于您正在训练的模型类型,在这种情况下,您需要告诉我们更多信息)。有几种工具和软件包可用于该任务。 Here是有关该主题的好论文,here是带有示例的更实用的博客文章。

  • hyperopt实现随机搜索和parzen估计量树的优化。
  • Scikit-Optimize实现了其他一些功能,包括高斯过程贝叶斯优化。
  • SigOpt是一项用于超参数优化的便捷服务(有偿服务,但有免费服务,并为学生和研究人员提供额外津贴)。它基于Yelp的MOE,它是开源的(尽管已发布的版本似乎更新不大),并且在理论上可以单独使用,尽管这需要花费额外的精力。
  • Spearmint也是一个常用的软件包,也是开源的,但出于商业目的不是免费的(尽管您可以使用less restrictive older version)。它看起来不错,但不是很活跃,并且可用版本与Python 3不兼容(即使已提交拉取请求来解决该问题)。
  • BayesOpt似乎是贝叶斯优化中的黄金标准,但主要是C++,并且Python接口(interface)看起来没有很多文档。

  • 在这些当中,我只有(实际上是有一个问题)将hyperopt与TensorFlow一起使用,并且并没有花费太多的精力。该API在某些方面有点怪异,并且文档并不十分详尽,但是它确实有效并且似乎正在积极开发中,可能还会有更多的优化算法和改编(例如专门用于神经网络)。但是,如先前链接的博客文章中所建议的那样,Scikit-Optimize可能同样出色,并且如果适合您,SigOpt看起来非常易于使用。

    关于optimization - Tensorflow的超参数调整,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44181511/

    10-10 05:06