请用 VS CODE (或其他习惯的IDE)开启 nni\examples\trials\mnist-pytorch 的资料夹。
开启 mnist.py档案。
先看主程序 line 156 之後:
if __name__ == '__main__':
try:
# get parameters from tuner
tuner_params = nni.get_next_parameter()
logger.debug(tuner_params)
params = vars(merge_parameter(get_params(), tuner_params))
print(params)
main(params)
except Exception as exception:
logger.exception(exception)
raise
我们的模型mnist.py得交给NNI跑好几次trials,才能最佳化hyper-parameters。所以,这些参数包含自己内部使用的参数( get_params() ),加上NNI需要的参数(tuner_params)。而且,每trial一次,产生的一些结果--中间结果,由每轮epoch所产生(跑完一世代的training data);最终结果,全部training data跑完--全部交给NNI,让NNI的advisor (assessor, tuner)去判别、调整,而後产生新的config档案。接着,在进行下一轮的trial。如此周而复始,直到跑至资源设定的上限,如trial数,时间(max duration)…等等。
了解NNI的基本执行流程後,我们先自NNI取出上回产生的超参数,要给本回trial使用的超参数,放入tuner_params中。
tuner_params = nni.get_next_parameter()
接着,自己的超参数,和NNI的超参数合并(用NNI的参数,盖掉自己的初始参数),如此便产生较佳的超参数(理论上)。
params = vars( merge_parameter(get_params(), tuner_params) )
超参数备妥後,就进入主程序。get_params()请自行理解。
主程序有哪些流程呢?请看下回分解。
<<: Day12 NiFi - Reporting Task & Bulletin Board
>>: [面试][前端]在使用後端的资料前,你有先做验证吗?
人工智慧与资料分析专题 今日上午助教报告了一篇论文,并提供程序码和资料集让我们实际run看看,下午就...
Implement audio wave generator using the Mbed API ...
前言 昨天讲完了最基础的 atomic的资讯,了解了 atomic可以保护某个变数的资料正确性,当有...
今天继续来写测试啦!!昨天我们测试destory方法後,今天我想写store的测试。 首先,我们先测...
devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...