淺析自動(dòng)機(jī)器學(xué)習(xí)(AutoML)工具NNI

NNI 簡(jiǎn)介

NNI (Neural Network Intelligence) 是一個(gè)輕量級(jí)但功能強(qiáng)大的自動(dòng)機(jī)器學(xué)習(xí)(AutoML)工具包秃踩,可幫助用戶自動(dòng)化特征工程、神經(jīng)架構(gòu)搜索业筏、超參數(shù)調(diào)優(yōu)和模型壓縮憔杨,并支持單機(jī)、本地多機(jī)蒜胖、云等不同的運(yùn)行環(huán)境消别。

nni架構(gòu).png

NNI 的主要特性

NNI 的特性主要包括:易于使用,可擴(kuò)展台谢,靈活寻狂,高效。

  • 易于使用:NNI 可通過(guò) pip 安裝朋沮。 只需要在代碼中添加幾行蛇券,就可以利用 NNI 來(lái)調(diào)優(yōu)參數(shù)》兀可使用命令行工具或 Web 界面來(lái)查看 Experiment纠亚。
  • 可擴(kuò)展:調(diào)優(yōu)超參或網(wǎng)絡(luò)結(jié)構(gòu)通常需要大量的計(jì)算資源。NNI 在設(shè)計(jì)時(shí)就支持了多種不同的計(jì)算資源筋夏,如遠(yuǎn)程服務(wù)器組蒂胞,訓(xùn)練平臺(tái)(如:OpenPAI,Kubernetes)等等条篷。 根據(jù)您配置的訓(xùn)練平臺(tái)的能力骗随,可以并行運(yùn)行數(shù)百個(gè) Trial
  • 靈活:除了內(nèi)置的算法赴叹,NNI 中還可以輕松集成自定義的超參調(diào)優(yōu)算法鸿染,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法,提前終止算法等等乞巧。 還可以將 NNI 連接到更多的訓(xùn)練平臺(tái)上涨椒,如云環(huán)境中的虛擬機(jī)集群,Kubernetes 服務(wù)等等摊欠。 此外丢烘,NNI 還可以連接到外部環(huán)境中的特殊應(yīng)用和模型上。
  • 高效:NNI 在系統(tǒng)及算法級(jí)別上不斷地進(jìn)行優(yōu)化些椒。 例如:通過(guò)早期的反饋來(lái)加速調(diào)優(yōu)過(guò)程播瞳。

NNI 的主要概念

  • Experiment(實(shí)驗(yàn)): 表示一次任務(wù),例如免糕,尋找模型的最佳超參組合赢乓,或最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)等忧侧。它由 Trial自動(dòng)機(jī)器學(xué)習(xí)算法所組成。
  • Search Space(搜索空間):是模型調(diào)優(yōu)的范圍牌芋。 例如蚓炬,超參的取值范圍。
  • Configuration(配置):配置是搜索空間的實(shí)例化躺屁,從搜索空間中固定下來(lái)一定的超參數(shù)肯夏,每個(gè)超參都會(huì)有特定的值。
  • Trial(嘗試):是一次獨(dú)立的嘗試犀暑,它會(huì)使用某組配置(例如驯击,一組超參值,或者特定的神經(jīng)網(wǎng)絡(luò)架構(gòu))耐亏。 Trial 會(huì)基于提供的配置來(lái)運(yùn)行徊都。
  • Tuner(調(diào)優(yōu)器):一種自動(dòng)機(jī)器學(xué)習(xí)算法,會(huì)為下一個(gè) Trial 生成新的配置广辰。 新的 Trial 會(huì)使用這組配置來(lái)運(yùn)行暇矫。
  • Assessor(評(píng)估器):分析 Trial 的中間結(jié)果(例如,定期評(píng)估數(shù)據(jù)集上的精度)择吊,來(lái)確定 Trial 是否應(yīng)該被提前終止李根。
  • 訓(xùn)練平臺(tái):是 Trial 的執(zhí)行環(huán)境。 根據(jù) Experiment 的配置干发,可以是本機(jī)朱巨,遠(yuǎn)程服務(wù)器組,或其它大規(guī)模訓(xùn)練平臺(tái)(如OpenPAI枉长,Kubernetes等)。

NNI 體系結(jié)構(gòu)

體系結(jié)構(gòu).png

NNI體系結(jié)構(gòu)如上圖所示琼讽,其中包括:

  • NNI Controller(nnictl): 這是個(gè)命令行工具必峰,用于控制 Web 服務(wù)器,和其他管理功能钻蹬,用戶可以使用這個(gè)命令來(lái)進(jìn)行管理吼蚁。比如,啟動(dòng) Experiment问欠。
  • NNI Core: 這是 NNI 的核心肝匆,實(shí)現(xiàn)了Web UI, nnimanager,訓(xùn)練服務(wù)等核心功能顺献。當(dāng) Experiment 出現(xiàn)嚴(yán)重錯(cuò)誤時(shí)旗国,從它的日志中才能找到原因。(例如注整,Web 界面無(wú)法打開(kāi)能曾,或者訓(xùn)練平臺(tái)失敹认酢)
  • Advisor: Advisor是 NNI 的超參數(shù)調(diào)整系統(tǒng),包括TunerAssessor寿冕,分別負(fù)責(zé)生成下一個(gè)trial和評(píng)估該trial蕊程。
  • 訓(xùn)練平臺(tái):右側(cè)的訓(xùn)練平臺(tái)可以是本機(jī)/遠(yuǎn)程服務(wù)器/OpenPAI/Kubernetes等,可以將許多 trial 進(jìn)行分配到各個(gè)平臺(tái)中驼唱,完成一次嘗試(trial)藻茂。

從上圖中,我們也看到了 NNI Experiment 的運(yùn)行過(guò)程如下:

  • Tuner 接收搜索空間并生成配置玫恳。
  • 這些配置將被提交到訓(xùn)練平臺(tái)辨赐,如本機(jī),遠(yuǎn)程服務(wù)器組或訓(xùn)練集群纽窟。
  • 執(zhí)行的性能結(jié)果會(huì)被返回給 Tuner肖油。
  • 然后,再生成并提交新的配置臂港。

每次 Experiment 執(zhí)行時(shí)森枪,用戶只需要定義搜索空間,改動(dòng)幾行代碼审孽,就能利用 NNI 內(nèi)置的 Tuner/Assessor 和訓(xùn)練平臺(tái)來(lái)搜索最好的超參組合以及神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)县袱。 基本上分為三步:

  • 步驟一:定義搜索空間
  • 步驟二:改動(dòng)模型代碼
  • 步驟三:定義實(shí)驗(yàn)配置

NNI 的核心功能

NNI 提供了并行運(yùn)行多個(gè)實(shí)例以查找最佳參數(shù)組合的能力。此功能可用于各種領(lǐng)域佑力,例如式散,為深度學(xué)習(xí)模型查找最佳超參數(shù),或查找具有真實(shí)數(shù)據(jù)的數(shù)據(jù)庫(kù)和其他復(fù)雜系統(tǒng)的最佳配置打颤。

NNI 還希望提供用于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的算法工具包暴拄,尤其是神經(jīng)體系結(jié)構(gòu)搜索(NAS)算法,模型壓縮算法和特征工程算法编饺。

超參數(shù)調(diào)優(yōu)

這是 NNI 最核心乖篷、最基本的功能,其中提供了許多流行的自動(dòng)調(diào)優(yōu)算法(即 Tuner) 以及提前終止算法(即 Assessor)透且。

NNI 內(nèi)置的 Tuner

NNI 能用簡(jiǎn)單快速的方法來(lái)配置超參調(diào)優(yōu)算法撕蔼,稱之為 Tuner

Tuner 從 Trial 中接收指標(biāo)結(jié)果秽誊,來(lái)評(píng)估一組超參或網(wǎng)絡(luò)結(jié)構(gòu)的性能鲸沮。 然后 Tuner 會(huì)將下一組超參或網(wǎng)絡(luò)結(jié)構(gòu)的配置發(fā)送給新的 Trial。

NNI 內(nèi)置的自動(dòng)調(diào)優(yōu)算法如下表格所示:

概述 算法簡(jiǎn)介
TPE Tree-structured Parzen Estimator (TPE) 是一種 sequential model-based optimization(SMBO锅论,即基于序列模型優(yōu)化)的方法讼溺。 SMBO 方法根據(jù)歷史指標(biāo)數(shù)據(jù)來(lái)按順序構(gòu)造模型,來(lái)估算超參的性能棍厌,隨后基于此模型來(lái)選擇新的超參肾胯。 參考論文
Random Search(隨機(jī)搜索) 在超參優(yōu)化時(shí)竖席,隨機(jī)搜索算法展示了其驚人的簡(jiǎn)單和效果。 建議當(dāng)不清楚超參的先驗(yàn)分布時(shí)敬肚,采用隨機(jī)搜索作為基準(zhǔn)毕荐。 參考論文
Anneal(退火) 這種簡(jiǎn)單的退火算法從先前的采樣開(kāi)始,會(huì)越來(lái)越靠近發(fā)現(xiàn)的最佳點(diǎn)取樣艳馒。 此算法是隨機(jī)搜索的簡(jiǎn)單變體憎亚,利用了反應(yīng)曲面的平滑性。 退火率不是自適應(yīng)的弄慰。
Na?ve Evolution(樸素進(jìn)化) Na?ve Evolution(樸素進(jìn)化算法)來(lái)自于 Large-Scale Evolution of Image Classifiers第美。 它會(huì)基于搜索空間隨機(jī)生成一個(gè)種群。 在每一代中陆爽,會(huì)選擇較好的結(jié)果什往,并對(duì)其下一代進(jìn)行一些變異(例如,改動(dòng)一個(gè)超參慌闭,增加或減少一層)别威。 樸素進(jìn)化算法需要很多次的 Trial 才能有效,但它也非常簡(jiǎn)單驴剔,也很容易擴(kuò)展新功能省古。 參考論文
SMAC SMAC 基于 Sequential Model-Based Optimization (SMBO,即序列的基于模型優(yōu)化方法)丧失。 它會(huì)利用使用過(guò)的突出的模型(高斯隨機(jī)過(guò)程模型)豺妓,并將隨機(jī)森林引入到SMBO中,來(lái)處理分類參數(shù)布讹。 SMAC 算法包裝了 Github 的 SMAC3琳拭。 注意:SMAC 需要通過(guò) pip install nni[SMAC] 命令來(lái)安裝。 參考論文 代碼倉(cāng)庫(kù)
Batch tuner(批處理) Batch Tuner 能讓用戶簡(jiǎn)單的提供幾組配置(如描验,超參選項(xiàng)的組合)臀栈。 當(dāng)所有配置都完成后,Experiment 即結(jié)束挠乳。 Batch Tuner 僅支持 choice 類型。
Grid Search(遍歷) 網(wǎng)格搜索會(huì)窮舉定義在搜索空間文件中的所有超參組合姑躲。 遍歷搜索可以使用的類型有 choice, quniform, randint睡扬。
Hyperband Hyperband 試圖用有限的資源來(lái)探索盡可能多的組合,并發(fā)現(xiàn)最好的結(jié)果黍析。 基本思想是生成許多配置卖怜,并通過(guò)少量的 Trial 來(lái)運(yùn)行一部分。 一半性能不好的配置會(huì)被拋棄阐枣,剩下的部分與新選擇出的配置會(huì)進(jìn)行下一步的訓(xùn)練马靠。 數(shù)量的多少對(duì)資源約束非常敏感(例如奄抽,分配的搜索時(shí)間)。 參考論文
Network Morphism 網(wǎng)絡(luò)模態(tài)(Network Morphism)提供自動(dòng)搜索深度學(xué)習(xí)體系結(jié)構(gòu)的功能甩鳄。 它會(huì)繼承父網(wǎng)絡(luò)的知識(shí)逞度,來(lái)生成變形的子網(wǎng)絡(luò)。 包括深度妙啃、寬度档泽、跳連接等變化。 然后使用歷史的架構(gòu)和指標(biāo)揖赴,來(lái)估計(jì)子網(wǎng)絡(luò)的值阎肝。 然后會(huì)選擇最有希望的模型進(jìn)行訓(xùn)練铭拧。 參考論文
Metis Tuner 大多數(shù)調(diào)參工具僅僅預(yù)測(cè)最優(yōu)配置,而 Metis 的優(yōu)勢(shì)在于有兩個(gè)輸出:(a) 最優(yōu)配置的當(dāng)前預(yù)測(cè)結(jié)果焊虏, 以及 (b) 下一次 Trial 的建議。 它不進(jìn)行隨機(jī)取樣疏尿。 大多數(shù)工具假設(shè)訓(xùn)練集沒(méi)有噪聲數(shù)據(jù)褥琐,但 Metis 會(huì)知道是否需要對(duì)某個(gè)超參重新采樣敌呈。 參考論文
BOHB BOHB 是 Hyperband 算法的后續(xù)工作磕洪。 Hyperband 在生成新的配置時(shí)析显,沒(méi)有利用已有的 Trial 結(jié)果签赃,而本算法利用了 Trial 結(jié)果。 BOHB 中箩绍,HB 表示 Hyperband荞下,BO 表示貝葉斯優(yōu)化(Byesian Optimization)仰税。 BOHB 會(huì)建立多個(gè) TPE 模型陨簇,從而利用已完成的 Trial 生成新的配置河绽。 參考論文
GP Tuner Gaussian Process(高斯過(guò)程) Tuner 是序列化的基于模型優(yōu)化(SMBO)的方法,并使用了高斯過(guò)程來(lái)替代苟跪。 參考論文, Github 倉(cāng)庫(kù)
PPO Tuner PPO Tuner 是基于 PPO 算法的強(qiáng)化學(xué)習(xí) Tuner件已。 參考論文
PBT Tuner PBT Tuner 是一種簡(jiǎn)單的異步優(yōu)化算法篷扩,在固定的計(jì)算資源下,它能有效的聯(lián)合優(yōu)化一組模型及其超參來(lái)最大化性能茉盏。 參考論文

NNI 內(nèi)置的 Assessor

為了節(jié)省計(jì)算資源,NNI 支持提前終止策略鸠姨,并且通過(guò)叫做 Assessor 的接口來(lái)執(zhí)行此操作。

Assessor 從 Trial 中接收中間結(jié)果享怀,并通過(guò)指定的算法決定此 Trial 是否應(yīng)該終止。 一旦 Trial 滿足了提前終止策略(這表示 Assessor 認(rèn)為最終結(jié)果不會(huì)太好)添瓷,Assessor 會(huì)終止此 Trial梅屉,并將其狀態(tài)標(biāo)志為 ==EARLY_STOPPED==

NNI 當(dāng)前支持的提前終止算法如下表格:

Assessor 算法簡(jiǎn)介
Medianstop Medianstop 是一個(gè)簡(jiǎn)單的提前終止算法鳞贷。 如果嘗試 X 的在步驟 S 的最好目標(biāo)值比所有已完成嘗試的步驟 S 的中位數(shù)值明顯低,就會(huì)停止運(yùn)行嘗試 X搀愧。 參考論文
Curvefitting Curve Fitting Assessor 是一個(gè) LPA (learning, predicting, assessing咱筛,即學(xué)習(xí)、預(yù)測(cè)饲趋、評(píng)估) 的算法堂污。 如果預(yù)測(cè)的 Trial X 在 step S 比性能最好的 Trial 要差,就會(huì)提前終止它龄砰。 此算法中采用了 12 種曲線來(lái)擬合精度曲線盟猖。 參考論文

通用 NAS 框架

此 NAS 框架可供用戶輕松指定候選的神經(jīng)體系結(jié)構(gòu),例如寝贡,可以為單個(gè)層指定多個(gè)候選操作(例如扒披,可分離的 conv、擴(kuò)張 conv)圃泡,并指定可能的跳過(guò)連接碟案。 NNI 將自動(dòng)找到最佳候選。 另一方面颇蜡,NAS 框架為其他類型的用戶(如价说,NAS 算法研究人員)提供了簡(jiǎn)單的接口,以實(shí)現(xiàn)新的 NAS 算法风秤。

NNI 通過(guò) Trial SDK 支持多種 one-shot(一次性) NAS 算法鳖目,如:ENAS、DARTS缤弦。 使用這些算法時(shí)领迈,不需要啟動(dòng) NNI Experiment。 在 Trial 代碼中加入算法,直接運(yùn)行即可狸捅。 如果要調(diào)整算法中的超參數(shù)衷蜓,或運(yùn)行多個(gè)實(shí)例,可以使用 Tuner 并啟動(dòng) NNI Experiment尘喝。

除了 one-shot NAS 外磁浇,NAS 還能以 NNI 模式運(yùn)行,其中每個(gè)候選的網(wǎng)絡(luò)結(jié)構(gòu)都作為獨(dú)立 Trial 任務(wù)運(yùn)行朽褪。 在此模式下置吓,與超參調(diào)優(yōu)類似,必須啟動(dòng) NNI Experiment 并為 NAS 選擇 Tuner缔赠。

模型壓縮

NNI 提供了一個(gè)易于使用的模型壓縮框架來(lái)壓縮深度神經(jīng)網(wǎng)絡(luò)衍锚,壓縮后的網(wǎng)絡(luò)通常具有更小的模型尺寸更快的推理速度,模型性能也不會(huì)有明顯的下降橡淑。 NNI 上的模型壓縮包括剪枝量化算法构拳。 這些算法通過(guò) NNI Trial SDK 提供 。 可以直接在 Trial 代碼中使用梁棠,并在不啟動(dòng) NNI Experiment 的情況下運(yùn)行 Trial 代碼置森。 用戶還可以使用 NNI 模型壓縮框架集成自定義的剪枝和量化算法。

自動(dòng)特征工程

自動(dòng)特征工程符糊,可以為下游任務(wù)找到最有效的特征凫海。 自動(dòng)特征工程通過(guò) NNI Trial SDK 支持,不必創(chuàng)建 NNI Experiment男娄, 只需在 Trial 代碼中加入內(nèi)置的自動(dòng)特征工程算法行贪,然后直接運(yùn)行 Trial 代碼。

自動(dòng)特征工程算法通常有一些超參模闲。 如果要自動(dòng)調(diào)整這些超參建瘫,可以利用 NNI 的超參數(shù)調(diào)優(yōu),即選擇調(diào)優(yōu)算法(即 Tuner)并啟動(dòng) NNI Experiment尸折。

安裝

通過(guò)pip安裝

python3 -m pip install --upgrade nni

通過(guò)源碼構(gòu)建

# 拉取NNI源碼并指定分支
git clone -b v2.0 https://github.com/Microsoft/nni.git

cd nni
# 設(shè)置環(huán)境變量
export NNI_RELEASE=2.0

# 構(gòu)建
python3 -m pip install --upgrade pip setuptools wheel
python3 setup.py clean --all
python3 setup.py build_ts
python3 setup.py bdist_wheel -p manylinux1_x86_64
python3 -m pip install dist/nni-2.0-py3-none-manylinux1_x86_64.whl

Docker安裝

# 拉取NNI鏡像
docker pull msranni/nni:v2.2

# 啟動(dòng)NNI容器
docker run -i -t -p 9090:8080 msranni/nni:v2.0

備注:

在Docer中運(yùn)行NNI的時(shí)候

如果直接使用 NNI 的官方鏡像 msranni/nni 來(lái)啟動(dòng) Experiment啰脚,可以直接使用 nnictl 命令。 NNI 官方鏡像有最基礎(chǔ)的 Python 環(huán)境和深度學(xué)習(xí)框架实夹。

如果使用自己的 Docker 鏡像橄浓,需要首先安裝 NNI, 如python3 -m pip install --upgrade nni亮航。

NNI 超參數(shù)調(diào)優(yōu)實(shí)驗(yàn)的簡(jiǎn)單示例

NNI 用來(lái)幫助超參調(diào)優(yōu)的偽代碼如下:

  • 輸入: 搜索空間, Trial 代碼, 配置文件
  • 輸出: 一組最優(yōu)的參數(shù)配置
 1: For t = 0, 1, 2, ..., maxTrialNum,
 2:      hyperparameter = 從搜索空間選擇一組參數(shù)
 3:      final result = run_trial_and_evaluate(hyperparameter)
 4:      返回最終結(jié)果給 NNI
 5:      If 時(shí)間達(dá)到上限,
 6:          停止實(shí)驗(yàn)
 7: 返回最好的實(shí)驗(yàn)結(jié)果

開(kāi)發(fā)并啟動(dòng)一個(gè) NNI 實(shí)驗(yàn)

啟動(dòng) Experiment 的包含如下三個(gè)步驟:

第一步 :編寫(xiě) JSON 格式的 搜索空間 文件荸实,包括所有需要搜索的超參的 名稱分布 (離散和連續(xù)值均可)。

search_space.json

{
    "batch_size": {"_type":"choice", "_value": [16, 32, 64, 128]},
    "hidden_size":{"_type":"choice","_value":[128, 256, 512, 1024]},
    "lr":{"_type":"choice","_value":[0.0001, 0.001, 0.01, 0.1]},
    "momentum":{"_type":"uniform","_value":[0, 1]}
}

第二步 :修改 Trial 代碼來(lái)從 NNI 獲取超參缴淋,并返回 NNI 最終結(jié)果准给。

mnist.py

import nni

def main(args):
    # 下載數(shù)據(jù)
    train_loader = torch.utils.data.DataLoader(datasets.MNIST(...), batch_size=args['batch_size'], shuffle=True)
    test_loader = torch.tuils.data.DataLoader(datasets.MNIST(...), batch_size=1000, shuffle=True)
    # 構(gòu)造模型
    model = Net(hidden_size=args['hidden_size'])
    optimizer = optim.SGD(model.parameters(), lr=args['lr'], momentum=args['momentum'])
    # 訓(xùn)練
    for epoch in range(10):
        train(args, model, device, train_loader, optimizer, epoch)
        test_acc = test(args, model, device, test_loader)
        print(test_acc)
        nni.report_intermeidate_result(test_acc)    
    print('final accuracy:', test_acc)
    # 報(bào)告評(píng)估指標(biāo)
    nni.report_final_result(test_acc)

if __name__ == '__main__':
    # 設(shè)置超參數(shù)默認(rèn)值
    params = {'batch_size': 32, 'hidden_size': 128, 'lr': 0.001, 'momentum': 0.5}
    # 獲取一次Trail的超參數(shù)
    params = nni.get_next_parameter()
    main(params)

第三步: 定義 YAML 格式的 配置 文件泄朴,聲明搜索空間和 Trail 文件的 路徑 。 它還提供其他信息圆存,例如調(diào)整算法叼旋,最大 Trial 運(yùn)行次數(shù)和最大持續(xù)時(shí)間的參數(shù)。

config.yml

authorName: default
experimentName: example_mnist
trialConcurrency: 1
maxExecDuration: 1h
maxTrialNum: 10
trainingServicePlatform: local
# 搜索空間文件路徑
searchSpacePath: search_space.json
useAnnotation: false
tuner:
  builtinTunerName: TPE
# 運(yùn)行的命令沦辙,以及 Trial 代碼的路徑
trial:
  command: python3 mnist.py
  codeDir: .
  gpuNum: 0

最后,從命令行使用 config.yml 文件啟動(dòng) MNIST Experiment 讹剔。

nnictl create --config config.yml

注意

如果要使用遠(yuǎn)程服務(wù)器或集群作為訓(xùn)練平臺(tái)油讯,為了避免產(chǎn)生過(guò)大的網(wǎng)絡(luò)壓力,NNI 限制了文件的最大數(shù)量為 2000延欠,大小為 300 MB陌兑。 如果 codeDir 中包含了過(guò)多的文件,可添加 .nniignore 文件來(lái)排除部分由捎,與 .gitignore 文件用法類似兔综。

在命令行中等待輸出 INFO: Successfully started experiment! 。 此消息表明實(shí)驗(yàn)已成功啟動(dòng)狞玛。 期望的輸出如下:

INFO: Starting restful server...
INFO: Successfully started Restful server!
INFO: Setting local config...
INFO: Successfully set local config!
INFO: Starting experiment...
INFO: Successfully started experiment!
-----------------------------------------------------------------------
The experiment id is egchD4qy
The Web UI urls are: [Your IP]:8080
-----------------------------------------------------------------------

You can use these commands to get more information about the experiment
-----------------------------------------------------------------------
         commands                       description
1. nnictl experiment show        show the information of experiments
2. nnictl trial ls               list all of trial jobs
3. nnictl top                    monitor the status of running experiments
4. nnictl log stderr             show stderr log content
5. nnictl log stdout             show stdout log content
6. nnictl stop                   stop an experiment
7. nnictl trial kill             kill a trial job by id
8. nnictl --help                 get help information about nnictl
-----------------------------------------------------------------------

如果根據(jù)上述步驟準(zhǔn)備好了相應(yīng) Trial软驰,搜索空間配置 ,并成功創(chuàng)建的 NNI 任務(wù)心肪。NNI 會(huì)自動(dòng)開(kāi)始通過(guò)配置的搜索空間來(lái)運(yùn)行不同的超參集合锭亏,搜索最好的超參。 通過(guò) Web 界面可看到 NNI 的進(jìn)度硬鞍。

通過(guò)Web UI 可視化實(shí)驗(yàn)過(guò)程

啟動(dòng) Experiment 后慧瘤,可以在命令行界面找到如下的 Web 界面地址

The Web UI urls are: [Your IP]:8080

在瀏覽器中打開(kāi) Web 界面地址 (即:[IP地址]:8080 ),就可以看到 Experiment 的詳細(xì)信息固该,以及所有的 Trial 任務(wù)锅减。

查看概要頁(yè)面

Experiment 相關(guān)信息會(huì)顯示在界面上,如配置和搜索空間等伐坏。 NNI 還支持通過(guò) Experiment summary 按鈕下載這些信息和參數(shù)怔匣。

nni-full-oview.png

查看 Trial 詳情頁(yè)面

可以在此頁(yè)面中看到最佳的嘗試指標(biāo)和超參數(shù)圖。 當(dāng)您單擊按鈕 Add/Remove columns 時(shí)著淆,表格內(nèi)容包括更多列劫狠。 當(dāng)您單擊按鈕 Add/Remove columns 時(shí),表格內(nèi)容包括更多列永部。

嘗試詳情頁(yè)面.png

查看 Experiment 管理頁(yè)面

All experiments 頁(yè)面可以查看計(jì)算機(jī)上的所有實(shí)驗(yàn)独泞。

實(shí)驗(yàn)管理頁(yè)面.png

到處為止,一次AutoML超參數(shù)調(diào)優(yōu)的實(shí)驗(yàn)運(yùn)行就已經(jīng)完成苔埋。

總結(jié)

本文簡(jiǎn)單介紹了自動(dòng)機(jī)器學(xué)習(xí)工具NNI的基本概念懦砂、主要功能特點(diǎn)以及如何使用NNI進(jìn)行一個(gè)超參調(diào)優(yōu)實(shí)驗(yàn),希望能夠幫助到你。

參考文檔

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布荞膘!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罚随,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子羽资,更是在濱河造成了極大的恐慌淘菩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屠升,死亡現(xiàn)場(chǎng)離奇詭異潮改,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)腹暖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門汇在,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人脏答,你說(shuō)我怎么就攤上這事糕殉。” “怎么了殖告?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵阿蝶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我丛肮,道長(zhǎng)赡磅,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任宝与,我火速辦了婚禮焚廊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘习劫。我一直安慰自己咆瘟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布诽里。 她就那樣靜靜地躺著袒餐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谤狡。 梳的紋絲不亂的頭發(fā)上灸眼,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音墓懂,去河邊找鬼焰宣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捕仔,可吹牛的內(nèi)容都是我干的匕积。 我是一名探鬼主播盈罐,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闪唆!你這毒婦竟也來(lái)了盅粪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤悄蕾,失蹤者是張志新(化名)和其女友劉穎票顾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帆调,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡库物,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贷帮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诱告,死狀恐怖撵枢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情精居,我是刑警寧澤锄禽,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站靴姿,受9級(jí)特大地震影響沃但,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佛吓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一宵晚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧维雇,春花似錦淤刃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至津滞,卻和暖如春铝侵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背触徐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工咪鲜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锌介。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓嗜诀,卻偏偏與公主長(zhǎng)得像猾警,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隆敢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容