模型的内容02 __main__

请用 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

>>:  [面试][前端]在使用後端的资料前,你有先做验证吗?

Day10 职训(机器学习与资料分析工程师培训班): 专题讨论

人工智慧与资料分析专题 今日上午助教报告了一篇论文,并提供程序码和资料集让我们实际run看看,下午就...

Day 11 Implement audio wave generator

Implement audio wave generator using the Mbed API ...

Day22 跟着 spinlock 旋转吧

前言 昨天讲完了最基础的 atomic的资讯,了解了 atomic可以保护某个变数的资料正确性,当有...

Day 17 跟着官方文件学习Laravel-再战测试

今天继续来写测试啦!!昨天我们测试destory方法後,今天我想写store的测试。 首先,我们先测...

Day-20 : devise 安装 part 1

devise是一套使用者认证(Authentication)套件,是Rails社群中最广为使用的一套...