NNI 超参调优

NNI 超参调优,第1张

安装

pip install nni

例子:求 x 2 + y 2 x^2+y^2 x2+y2最大值

model.py

import nni

# Get optimized hyperparameters
params = {'x': 0, 'y': 0} #待优化的参数
optimized_params = nni.get_next_parameter()
params.update(optimized_params)

def test(x,y):
    return x*x+y*y

epochs = 5
for t in range(epochs):
    out = test(params['x'],params['y'])
    nni.report_intermediate_result(out) 
nni.report_final_result(out)

main.py

from pathlib import Path
import signal

from nni.experiment import Experiment

# Define search space
search_space = {
    'x': {'_type': 'randint', '_value': [0, 10]},
    'y': {'_type': 'randint', '_value': [0, 10]},
}

# Configure experiment
experiment = Experiment('local')
experiment.config.trial_command = 'python model.py'
experiment.config.trial_code_directory = Path(__file__).parent
experiment.config.search_space = search_space

# Custom define
experiment.config.max_trial_number = 100 # 最大实验次数
experiment.config.trial_concurrency = 2 # 并发实验数
experiment.config.tuner.name = 'GridSearch' # 调优方法

# Run it!
experiment.run(port=8080, wait_completion=False)

print('Experiment is running. Press Ctrl-C to quit.')
signal.pause()

执行python main.py,可以在网页端监控进度

复现

使用nni.experiment.Experiment.view(experiment_id=Experiment ID)可重新启动历史实验的网页控制台

更多内容参考官方文档 NNI

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/917764.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存