我正在寻找一个直接在Tensorflow(不是Keras或Tflearn)中编写的代码的超参数调谐包。你能提出一些建议吗?Tensorflow的超参数调谐
3
A
回答
4
通常,您不需要将超参数优化逻辑与优化模型结合使用(除非您的hyperparemeter优化逻辑针对您正在培训的模型类型,在这种情况下,您需要告诉我们一点更多)。有几种可用于该任务的工具和软件包。 Here是关于这个话题的一篇很好的论文,而here是一个比较实用的博客文章。
- hyperopt实现随机搜索和parzen估计器优化树。
- Scikit-Optimize实现了一些其他的,包括高斯过程贝叶斯优化。
- SigOpt为超参数优化提供了一种方便的服务(尽管为学生和研究人员提供免费层级和额外津贴)。它基于Yelp的MOE,它是开源的(虽然发布的版本似乎没有太多更新),理论上可以单独使用,尽管它需要一些额外的努力。
- Spearmint也是一个常用的软件包,也是开源的,但不是免费的商业用途(虽然你可以回落到less restrictive older version)。它看起来很不错,但不是非常活跃,可用的版本与Python 3不兼容(即使已经提交pull请求来解决这个问题)。
- BayesOpt似乎是贝叶斯优化的黄金标准,但它主要是C++,并且Python界面看起来没有很多文档。
出的这些,我只有真正(即,与一个真正的问题)使用hyperopt与TensorFlow,并没有花太多精力。这个API在某些方面有点奇怪,文档也不是很彻底,但它确实有效并且似乎处于积极的发展之中,更多的优化算法和适应(例如专门用于神经网络)可能会出现。但是,正如前面链接的博客文章中所建议的那样,Scikit-Optimize可能同样好,如果SigOpt适合你,它看起来很容易使用。
3
我想再添加一个库到@ jdehesa的列表中,我已经在我的研究中应用了它,特别是在tensorflow中。这是hyper-engine,Apache 2.0许可。
它还实现了高斯过程贝叶斯优化和一些其他技术,如学习曲线预测,这节省了大量的时间。
相关问题
- 1. LSTM张量形状和超参数Tensorflow
- 2. 参数tensorflow
- 3. 调整GAN超参数
- 4. 如何调谐MLPRegressor?
- 5. Tensorflow seq2seq`feed_previous'参数`
- 6. tensorflow sparse_to_dense函数,output_shape参数
- 7. Keras:用于超参数调整的GridSearchCV
- 8. 调整GC开销超出的参数
- 9. 数据库性能比较调谐
- 10. Tensorflow - 如何实现超参数随机搜索?
- 11. 调谐和如何隧道
- 12. 闪光吉他调谐器
- 13. iOS仪器调谐器
- 14. 自动调谐/ Python/Javascript
- 15. 调谐查询SELECT COUNT(1)
- 16. 了解tensorflow sequence_loss参数
- 17. Tensorflow批处理参数
- 18. Tensorflow服务配料参数
- 19. 使用GridSearchCV GBRT超参数调整
- 20. 超时参数
- 21. 参数超
- 22. iOS上的FFT /吉他调谐器
- 23. 带红宝石的吉他调谐器
- 24. TensorFlow:了解tf.summary.scalar中的`collections`参数
- 25. 传递TensorFlow方法的错误参数
- 26. tensorflow-gpu通过pip超时
- 27. Tensorflow不精确超时
- 28. Cloud ML针对CATEGORICAL参数的超参数调整传递整数值
- 29. 调用tensorflow
- 30. 使用参数调用泛型函数的实现超时
我是这个DNN的新手。但我用scikit-learn(传统ML)做了一些参数网格搜索。我的问题是:DNN中的网格搜索需要太多的计算能力,是否实用? –
@scotthuang看看[本文](https://papers.nips.cc/paper/4443-algorithms-for-hyper-parameter-optimization.pdf)。除了描述其他几种方法之外,其中一个结论是即使进行随机搜索也可能更有效,因为通常只有一小部分超参数在模型的性能中起着重要作用。 – jdehesa