在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NNI:自動(dòng)幫你做機(jī)器學(xué)習(xí)調(diào)參的神器

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-30 10:28 ? 次閱讀

NNI 自動(dòng)機(jī)器學(xué)習(xí)調(diào)參,是微軟開源的又一個(gè)神器,它能幫助你找到最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)或超參數(shù),支持 各種訓(xùn)練環(huán)境

它常用的使用場景如下:

  • 想要在自己的代碼、模型中試驗(yàn) 不同的機(jī)器學(xué)習(xí)算法
  • 想要在不同的環(huán)境中加速運(yùn)行機(jī)器學(xué)習(xí)。
  • 想要更容易實(shí)現(xiàn)或試驗(yàn)新的機(jī)器學(xué)習(xí)算法的研究員或數(shù)據(jù)科學(xué)家,包括:超參調(diào)優(yōu)算法,神經(jīng)網(wǎng)絡(luò)搜索算法以及模型壓縮算法。

它支持的框架有:

  • PyTorch
  • Keras
  • TensorFlow
  • MXNet
  • Caffe2
  • Scikit-learn
  • XGBoost
  • LightGBM

基本上市面上所有的深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的框架它都支持。

下面就來看看怎么使用這個(gè)工具。

1.準(zhǔn)備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南

請(qǐng)選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install nni

2.運(yùn)行示例

讓我們運(yùn)行一個(gè)示例來驗(yàn)證是否安裝成功,首先克隆項(xiàng)目:

git clone -b v2.6 https://github.com/Microsoft/nni.git

如果你無法成功克隆項(xiàng)目,請(qǐng)?jiān)赑ython實(shí)用寶典后臺(tái)回復(fù) **nni **下載項(xiàng)目。

運(yùn)行 MNIST-PYTORCH 示例, Linux/macOS

nnictl create --config nni/examples/trials/mnist-pytorch/config.yml

Windows

nnictl create --config nniexamplestrialsmnist-pytorchconfig_windows.yml

出現(xiàn)這樣的界面就說明安裝成功,示例運(yùn)行正常:

圖片

訪問 http://127.0.0.1:8080 可以配置運(yùn)行時(shí)間、實(shí)驗(yàn)次數(shù)等:

圖片

3.模型自動(dòng)調(diào)參配置

那么如何讓 NNI 和我們自己的模型適配呢?

觀察 config_windows.yaml 會(huì)發(fā)現(xiàn):

searchSpaceFile: search_space.json
trialCommand: python mnist.py
trialGpuNumber: 0
trialConcurrency: 1
tuner:
  name: TPE
  classArgs:
    optimize_mode: maximize
trainingService:
  platform: local

我們先看看 trialCommand, 這很明顯是訓(xùn)練使用的命令,訓(xùn)練代碼位于 mnist.py,其中有部分代碼如下:

def get_params():
    # Training settings
    parser = argparse.ArgumentParser(description='PyTorch MNIST Example')
    parser.add_argument("--data_dir", type=str,
                        default='./data', help="data directory")
    parser.add_argument('--batch_size', type=int, default=64, metavar='N',
                        help='input batch size for training (default: 64)')
    parser.add_argument("--batch_num", type=int, default=None)
    parser.add_argument("--hidden_size", type=int, default=512, metavar='N',
                        help='hidden layer size (default: 512)')
    parser.add_argument('--lr', type=float, default=0.01, metavar='LR',
                        help='learning rate (default: 0.01)')
    parser.add_argument('--momentum', type=float, default=0.5, metavar='M',
                        help='SGD momentum (default: 0.5)')
    parser.add_argument('--epochs', type=int, default=10, metavar='N',
                        help='number of epochs to train (default: 10)')
    parser.add_argument('--seed', type=int, default=1, metavar='S',
                        help='random seed (default: 1)')
    parser.add_argument('--no_cuda', action='store_true', default=False,
                        help='disables CUDA training')
    parser.add_argument('--log_interval', type=int, default=1000, metavar='N',
                        help='how many batches to wait before logging training status')
    args, _ = parser.parse_known_args()
    return args

如上所示,這個(gè)模型里提供了 10 個(gè)參數(shù)選擇。也就是說 NNI 可以幫我們自動(dòng)測(cè)試這10個(gè)參數(shù)。

那么這些參數(shù)在哪里設(shè)定?答案是在 searchSpaceFile 中,對(duì)應(yīng)的值也就是 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]}
}

這里有4個(gè)選項(xiàng),NNI 是怎么組合這些參數(shù)的呢?這是 tuner 參數(shù)干的事,為了讓機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型適應(yīng)不同的任務(wù)和問題,我們需要進(jìn)行超參數(shù)調(diào)優(yōu),而自動(dòng)化調(diào)優(yōu)依賴于優(yōu)秀的調(diào)優(yōu)算法。NNI 內(nèi)置了先進(jìn)的調(diào)優(yōu)算法,并且提供了易于使用的 API。

在 NNI 中,Tuner 向 trial 發(fā)送超參數(shù),接收運(yùn)行結(jié)果從而評(píng)估這組超參的性能,然后將下一組超參發(fā)送給新的 trial。

下表簡要介紹了 NNI 內(nèi)置的調(diào)優(yōu)算法。

Tuner算法簡介
TPETree-structured Parzen Estimator (TPE) 是一種基于序列模型的優(yōu)化方法。SMBO方法根據(jù)歷史數(shù)據(jù)來順序地構(gòu)造模型,從而預(yù)估超參性能,并基于此模型來選擇新的超參。
Random Search (隨機(jī)搜索)隨機(jī)搜索在超算優(yōu)化中表現(xiàn)出了令人意外的性能。如果沒有對(duì)超參分布的先驗(yàn)知識(shí),我們推薦使用隨機(jī)搜索作為基線方法。
Anneal (退火)樸素退火算法首先基于先驗(yàn)進(jìn)行采樣,然后逐漸逼近實(shí)際性能較好的采樣點(diǎn)。該算法是隨即搜索的變體,利用了反應(yīng)曲面的平滑性。該實(shí)現(xiàn)中退火率不是自適應(yīng)的。
Naive Evolution(樸素進(jìn)化)樸素進(jìn)化算法來自于 Large-Scale Evolution of Image Classifiers。它基于搜索空間隨機(jī)生成一個(gè)種群,在每一代中選擇較好的結(jié)果,并對(duì)其下一代進(jìn)行變異。樸素進(jìn)化算法需要很多 Trial 才能取得最優(yōu)效果,但它也非常簡單,易于擴(kuò)展。
SMACSMAC 是基于序列模型的優(yōu)化方法 (SMBO)。它利用使用過的最突出的模型(高斯隨機(jī)過程模型),并將隨機(jī)森林引入到SMBO中,來處理分類參數(shù)。NNI 的 SMAC tuner 封裝了 GitHub 上的 SMAC3。參考論文注意:SMAC 算法需要使用pip install nni[SMAC]安裝依賴,暫不支持 Windows 操作系統(tǒng)
Batch(批處理)批處理允許用戶直接提供若干組配置,為每種配置運(yùn)行一個(gè) trial。
Grid Search(網(wǎng)格遍歷)網(wǎng)格遍歷會(huì)窮舉搜索空間中的所有超參組合。
HyperbandHyperband 試圖用有限的資源探索盡可能多的超參組合。該算法的思路是,首先生成大量超參配置,將每組超參運(yùn)行較短的一段時(shí)間,隨后拋棄其中效果較差的一半,讓較好的超參繼續(xù)運(yùn)行,如此重復(fù)多輪。參考論文
Metis大多數(shù)調(diào)參工具僅僅預(yù)測(cè)最優(yōu)配置,而 Metis 的優(yōu)勢(shì)在于它有兩個(gè)輸出:(a) 最優(yōu)配置的當(dāng)前預(yù)測(cè)結(jié)果, 以及 (b) 下一次 trial 的建議。大多數(shù)工具假設(shè)訓(xùn)練集沒有噪聲數(shù)據(jù),但 Metis 會(huì)知道是否需要對(duì)某個(gè)超參重新采樣。參考論文
BOHBBOHB 是 Hyperband 算法的后續(xù)工作。Hyperband 在生成新的配置時(shí),沒有利用已有的 trial 結(jié)果,而本算法利用了 trial 結(jié)果。BOHB 中,HB 表示 Hyperband,BO 表示貝葉斯優(yōu)化(Byesian Optimization)。BOHB 會(huì)建立多個(gè) TPE 模型,從而利用已完成的 Trial 生成新的配置。參考論文
GP (高斯過程)GP Tuner 是基于序列模型的優(yōu)化方法 (SMBO),使用高斯過程進(jìn)行 surrogate。參考論文
PBTPBT Tuner 是一種簡單的異步優(yōu)化算法,在固定的計(jì)算資源下,它能有效的聯(lián)合優(yōu)化一組模型及其超參來最優(yōu)化性能。參考論文
DNGODNGO 是基于序列模型的優(yōu)化方法 (SMBO),該算法使用神經(jīng)網(wǎng)絡(luò)(而不是高斯過程)去建模貝葉斯優(yōu)化中所需要的函數(shù)分布。

可以看到本示例中,選擇的是TPE tuner.

其他的參數(shù)比如 trialGpuNumber,指的是使用的gpu數(shù)量,trialConcurrency 指的是并發(fā)數(shù)。trainingService 中 platform 為 local,指的是本地訓(xùn)練。

當(dāng)然,還有許多參數(shù)可以選,比如:

trialConcurrency: 2                 # 同時(shí)運(yùn)行 2 個(gè) trial
maxTrialNumber: 10                  # 最多生成 10 個(gè) trial
maxExperimentDuration: 1h # 1 小時(shí)后停止生成 trial

不過這些參數(shù)在調(diào)優(yōu)開始時(shí)的web頁面上是可以進(jìn)行調(diào)整的。

圖片

所以其實(shí)NNI干的事情就很清楚了,也很簡單。你只需要在你的模型訓(xùn)練文件中增加你想要調(diào)優(yōu)的參數(shù)作為輸入,就能使用NNI內(nèi)置的調(diào)優(yōu)算法對(duì)不同的參數(shù)進(jìn)行調(diào)優(yōu),而且允許從頁面UI上觀察調(diào)優(yōu)的整個(gè)過程,相對(duì)而言還是很方便的。

不過,NNI可能不太適用一些數(shù)據(jù)量極大或模型比較復(fù)雜的情況。比如基于DDP開發(fā)的模型,在NNI中可能無法實(shí)現(xiàn)大型的分布式計(jì)算。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6634

    瀏覽量

    104536
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4783

    瀏覽量

    101239
  • NNI
    NNI
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6362
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8446

    瀏覽量

    133126
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【OK210申請(qǐng)】智能家電(廚房神器之幫廚機(jī)器人)開發(fā)

    申請(qǐng)理由:公司根據(jù)市場需求,將要開發(fā)一款叫幫廚機(jī)的機(jī)器,希望可以用這套開發(fā)板來開發(fā)。項(xiàng)目描述:幫廚機(jī)器人,之所以叫廚房神器,是因?yàn)樗哂袕?qiáng)大的功能,它具有北方人喜歡的生面條,熟面條,
    發(fā)表于 06-28 17:57

    阿里巴巴大數(shù)據(jù)產(chǎn)品最新特性介紹--機(jī)器學(xué)習(xí)PAI

    以下內(nèi)容根據(jù)演講視頻以及PPT整理而成。本次分享主要圍繞以下五個(gè)方面:PAI產(chǎn)品簡介自定義算法上傳數(shù)加智能生態(tài)市場AutoML2.0自動(dòng)調(diào)AutoLearning自動(dòng)
    發(fā)表于 09-18 14:57

    教你怎樣學(xué)會(huì)PID調(diào)

    不會(huì)PID調(diào)?這篇文章圖文結(jié)合帶你學(xué)會(huì)PID調(diào)!讓你成為PID調(diào)大神!!!
    發(fā)表于 01-06 07:47

    PID調(diào)的相關(guān)資料分享

    說明:本文章適用于STM32初學(xué)者,想完成一個(gè)好玩且有深度的項(xiàng)目但不知道從何下手的同學(xué)。PID調(diào)是平衡車的精髓所在,參數(shù)整定的好壞直接影響到平衡車的平衡效果。有的車平衡時(shí)來回晃而參數(shù)選的好的車就能
    發(fā)表于 01-14 09:14

    針對(duì)PID調(diào)進(jìn)行詳細(xì)的講解

    ??大家好,我是小政。本篇文章我將針對(duì)PID調(diào)進(jìn)行詳細(xì)的講解,讓每位小伙伴能夠?qū)Ρ壤⒎e分、微分三個(gè)參數(shù)如何調(diào)節(jié)有更加清晰的理解。一、調(diào)步驟確立機(jī)械中值直立環(huán)(內(nèi)環(huán))——Kp極性、
    發(fā)表于 01-14 06:26

    NNI

    NNI包括內(nèi)部網(wǎng)絡(luò)節(jié)點(diǎn)接口(I-NNI)和外部網(wǎng)絡(luò)節(jié)點(diǎn)接口(E-NNI)兩種。I-NNI指屬于一個(gè)管理域或多個(gè)具有信任關(guān)系的控制面實(shí)體間的雙向信令接口,負(fù)責(zé)支持網(wǎng)絡(luò)中連
    發(fā)表于 06-06 12:48 ?4612次閱讀

    WinGUI_2.3調(diào)軟件

    英文版軟件,很好的軟件,WinGUI_2.3調(diào)軟件
    發(fā)表于 12-08 14:28 ?3次下載

    NAZA_驅(qū)動(dòng)調(diào)軟件及說明書

    NAZA 驅(qū)動(dòng)調(diào)軟件,需要的可以看一看了
    發(fā)表于 02-15 15:10 ?0次下載

    CF飛控調(diào)說明

    CF飛控調(diào)說明
    發(fā)表于 10-09 14:56 ?15次下載

    深度學(xué)習(xí)機(jī)器學(xué)習(xí)深度的不同之處 淺談深度學(xué)習(xí)的訓(xùn)練和調(diào)

    近年來,深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)中比較火的一種方法出現(xiàn)在我們面前,但是和非深度學(xué)習(xí)機(jī)器學(xué)習(xí)相比(我
    發(fā)表于 05-02 10:30 ?4359次閱讀

    深度學(xué)習(xí)調(diào)經(jīng)驗(yàn)

    對(duì)于深度學(xué)習(xí)本人也是半路出家. 現(xiàn)在的工作內(nèi)容主要就是使用CNNCV任務(wù). 干調(diào)這種活也有兩年時(shí)間了. 我的回答可能更多的還是側(cè)重工業(yè)應(yīng)用, 技術(shù)上只限制在CNN這塊.
    的頭像 發(fā)表于 06-08 14:41 ?2368次閱讀

    機(jī)器學(xué)習(xí)全靠調(diào)?谷歌發(fā)布顛覆性研究

    不訓(xùn)練不調(diào),AI自動(dòng)構(gòu)建超強(qiáng)網(wǎng)絡(luò),告別煉丹一大步
    的頭像 發(fā)表于 06-16 09:41 ?2681次閱讀

    結(jié)機(jī)器學(xué)習(xí)的模型評(píng)估與調(diào)大法 想學(xué)的快上車

    由于文章較長,所以我還是先把目錄提前。 一、認(rèn)識(shí)管道流 1.1 數(shù)據(jù)導(dǎo)入 1.2 使用管道創(chuàng)建工作流 二、K折交叉驗(yàn)證 2.1 K折交叉驗(yàn)證原理 2.2 K折交叉驗(yàn)證實(shí)現(xiàn) 三、曲線調(diào) 3.1 模型
    的頭像 發(fā)表于 09-25 10:57 ?2139次閱讀
    結(jié)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的模型評(píng)估與<b class='flag-5'>調(diào)</b><b class='flag-5'>參</b>大法  想學(xué)的快上車

    機(jī)器學(xué)習(xí)8大調(diào)技巧

    今天給大家一篇關(guān)于機(jī)器學(xué)習(xí)調(diào)技巧的文章。超參數(shù)調(diào)優(yōu)是機(jī)器學(xué)
    的頭像 發(fā)表于 03-23 08:26 ?723次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>8大<b class='flag-5'>調(diào)</b><b class='flag-5'>參</b>技巧

    LSTM神經(jīng)網(wǎng)絡(luò)的調(diào)技巧

    長短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),它能夠學(xué)習(xí)長期依賴信息。在實(shí)際應(yīng)用中,LSTM網(wǎng)絡(luò)的調(diào)是一個(gè)復(fù)雜且關(guān)鍵的過程,直接影響
    的頭像 發(fā)表于 11-13 10:01 ?849次閱讀
    主站蜘蛛池模板: 国产精品午夜自在在线精品 | 亚洲狠狠婷婷综合久久久图片 | 色香蕉在线 | 丁香五六月婷婷 | 天天摸天天操免费播放小视频 | 福利视频一区二区三区 | 亚洲天堂视频在线播放 | 天天操夜夜操夜夜操 | 天天摸天天碰色综合网 | 久久午夜宅男免费网站 | 久久婷婷成人综合色 | 激情婷婷网 | 国产专区日韩精品欧美色 | 欧美一级视频高清片 | www.久操| 日韩毛片在线看 | 亚洲色啦啦狠狠网站 | 最新黄色在线 | 国产午夜在线视频 | 1024手机最新手机在线 | 三级特黄视频 | 扒开双腿猛进入jk校视频 | 日韩一区二区在线观看 | 国产精品久久久亚洲456 | 天天综合网天天综合色不卡 | 高颜值大长腿美女啪啪 | 额去鲁97在线观看视频 | 男人都懂的网址在线看片 | 免费v片网站 | 免费观看色 | 亚洲日本欧美日韩高观看 | 日韩一级片免费在线观看 | 成人免费看片视频色多多 | 欧美草逼 | 国产亚洲综合视频 | 欧美一级乱理片免费观看 | 四虎影视地址 | 天天干天天曰 | 欧美+日本+国产+在线观看 | 啪啪网站视频 | 呦交小u女国产秘密入口 |