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



