到此為止,若一切順利,表示NNI安裝正確,功能一切正常。但整個流程究竟在做甚麼事情呢?
首先,我們在 Config_detail.yml 檔案,修改的 searchSpace 部分,其實就是模型程式 mnist.py 的參數。
而其他的參數,則是在定義 trial, tuner and training services 的參數。
所以,我們既然有了自己寫的模型,我們當然很想知道,到底哪組 Hyper-parameters 效果最好?這個 Experiment 就是在做調整 Hyper-parameters 的事情。
或許,您一定會好奇,一切未知的情形下--不知何模型、哪組 Hyper-parameters 較佳的情形下,NNI有沒有辦法告訴我們解答呢?當然可以的,這便是NNI的主要功能,我們會在後面章節,帶大家做一下實驗。
在這裡,我們先大致了解一下這個模型到底在做些甚麼事情。這個模型(MNIST),主要是在辨認手寫的阿拉伯數字0-9。在pytorch framework中,使用CNN(Convolutional Neural Networks),建構出一個CNN的辨識模型,經由現有的資料進行training、validation,以完成此辨識手寫的阿拉伯數字的模型。但是,我們跑一次mnist.py,並不知道參數的好壞,勢必要來回不斷調整。所以,前面章節的過程,便是NNI自動調整 Hyper-parameters 的過程。
那究竟模型程式 mnist.py ,到底是如何做到辨認手寫的阿拉伯數字0-9?請看下回分曉。
若你已經熟悉mnist在做甚麼,請跳過[模型的內容]這幾章節。