iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0

請用 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()請自行理解。

主程式有哪些流程呢?請看下回分解。


上一篇
模型的內容01
下一篇
模型的內容03 Class Net
系列文
新手一起來Azure上玩 NNI (auto-ML的一種)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言