神经网络的训练
本篇文章主要记录一些训练神经网络的内容
1. 硬件查看
1 | nvidia-smi |
GPU:GPU 编号;Name:GPU 型号;Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态;Fan:风扇转速,从0到100%之间变动;Temp:温度,单位是摄氏度;Perf:性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能(即 GPU 未工作时为P0,达到最大工作限度时为P12)。Pwr:Usage/Cap:能耗;Memory Usage:显存使用率;Bus-Id:涉及GPU总线的东西,domain:bus:device.function;Disp.A:Display Active,表示GPU的显示是否初始化;Volatile GPU-Util:浮动的GPU利用率;Uncorr. ECC:Error Correcting Code,错误检查与纠正;Compute M:compute mode,计算模式。
2. 超参数调优
常见的超参数调优方法:网格搜索、随机搜索和贝叶斯优化
2.1 网格搜索
网格搜索是一种穷举搜索方法,它通过遍历超参数的所有可能组合来寻找最优超参数。
网格搜索适用于超参数数量较少的情况,计算量较大
2.2 随机搜索
随机搜索是一种随机化的搜索方法,它通过随机采样超参数的组合来寻找最优超参数。
随机搜索适用于快速寻找较好的超参数组合
2.3 贝叶斯优化
贝叶斯优化首先利用已有的观测数据训练一个高斯过程模型,根据采集函数的结果选择新的超参数组合进行评估。
贝叶斯优化则能够在有限的迭代次数内找到全局最优解,适用于精细搜索。
随机搜索+贝叶斯优化的组合往往效果不错。
3. 训练参数记录
要更加直观的了解训练过程,我们可以借助一些工具来记录训练过程的参数。下面以 swanlab 为例,介绍如何使用它来记录训练参数。
3.1 安装和登录 swanlab
1 | pip install swanlab |
3.2 在训练代码中集成 swanlab
在训练代码中导入 swanlab,并在训练过程中记录参数。
1 | # 1. 导入 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 哈基窝!
