深度学习调参是一门玄学,有时候想改进自己的模型,比如把LSTM替换为Transformer,好不容易模型框架照着论文搭好了,超参数也和论文一致,照理说acc、auc等各种评价指标应该远远超过LSTM,理想是丰满的,现实却是惨不忍睹的,在自己的数据集上跑时,有时效果反而还不如原本已经fine tune过的简单模型性能好,我要这模型有何用?别急,下面我来教你如何解放双手,让它来帮你找到最优参数。
本文介绍超参数优化框架Optuna,并用示例代码简要展示其在pytorch上的使用。
首先简单介绍下Optuna,Optuna是一种自动超参优化框架,专为机器学习而设计。它具有命令式,按运行定义的用户API。使用Optuna编写的代码具有很高的模块性,Optuna的用户可以动态构建超参数的搜索空间。
它目前支持的部分库有(全部请参见官网):
- XGBoost
- LightGBM
- Sklearn
- Keras
- TensorFlow
- tf.keras
- MXNet
- PyTorch
- FastAI
它的安装就一步:pip install optuna
下面我通过代码示例,简要展示其如何使用,数据的加载、训练等函数都将略去,只需要添加两个函数define_model
和objective
就能将Optuna框架零感地插入到我们现有的代码中去。
1 | import optuna |
这里只是简单地展示了一下如何在pytorch中使用optuna,以此来解放调参师的双手,更详细的使用请参见官方网站。
答应我,别再用手调参了。(前提是你得有好的GPU来搜,逃。。。
祝大家都能超参最优!