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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NNI:自動幫你做機器學習調參的神器

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

NNI 自動機器學習調參,是微軟開源的又一個神器,它能幫助你找到最好的神經網絡架構或超參數,支持 各種訓練環境

它常用的使用場景如下:

  • 想要在自己的代碼、模型中試驗 不同的機器學習算法
  • 想要在不同的環境中加速運行機器學習。
  • 想要更容易實現或試驗新的機器學習算法的研究員或數據科學家,包括:超參調優算法,神經網絡搜索算法以及模型壓縮算法。

它支持的框架有:

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

基本上市面上所有的深度學習和機器學習的框架它都支持。

下面就來看看怎么使用這個工具。

1.準備

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

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

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

請選擇以下任一種方式輸入命令安裝依賴

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

2.運行示例

讓我們運行一個示例來驗證是否安裝成功,首先克隆項目:

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

如果你無法成功克隆項目,請在Python實用寶典后臺回復 **nni **下載項目。

運行 MNIST-PYTORCH 示例, Linux/macOS

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

Windows

nnictl create --config nniexamplestrialsmnist-pytorchconfig_windows.yml

出現這樣的界面就說明安裝成功,示例運行正常:

圖片

訪問 http://127.0.0.1:8080 可以配置運行時間、實驗次數等:

圖片

3.模型自動調參配置

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

觀察 config_windows.yaml 會發現:

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

我們先看看 trialCommand, 這很明顯是訓練使用的命令,訓練代碼位于 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

如上所示,這個模型里提供了 10 個參數選擇。也就是說 NNI 可以幫我們自動測試這10個參數。

那么這些參數在哪里設定?答案是在 searchSpaceFile 中,對應的值也就是 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個選項,NNI 是怎么組合這些參數的呢?這是 tuner 參數干的事,為了讓機器學習和深度學習模型適應不同的任務和問題,我們需要進行超參數調優,而自動化調優依賴于優秀的調優算法。NNI 內置了先進的調優算法,并且提供了易于使用的 API。

在 NNI 中,Tuner 向 trial 發送超參數,接收運行結果從而評估這組超參的性能,然后將下一組超參發送給新的 trial。

下表簡要介紹了 NNI 內置的調優算法。

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

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

其他的參數比如 trialGpuNumber,指的是使用的gpu數量,trialConcurrency 指的是并發數。trainingService 中 platform 為 local,指的是本地訓練。

當然,還有許多參數可以選,比如:

trialConcurrency: 2                 # 同時運行 2 個 trial
maxTrialNumber: 10                  # 最多生成 10 個 trial
maxExperimentDuration: 1h # 1 小時后停止生成 trial

不過這些參數在調優開始時的web頁面上是可以進行調整的。

圖片

所以其實NNI干的事情就很清楚了,也很簡單。你只需要在你的模型訓練文件中增加你想要調優的參數作為輸入,就能使用NNI內置的調優算法對不同的參數進行調優,而且允許從頁面UI上觀察調優的整個過程,相對而言還是很方便的。

不過,NNI可能不太適用一些數據量極大或模型比較復雜的情況。比如基于DDP開發的模型,在NNI中可能無法實現大型的分布式計算。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微軟
    +關注

    關注

    4

    文章

    6646

    瀏覽量

    105146
  • 神經網絡
    +關注

    關注

    42

    文章

    4793

    瀏覽量

    101980
  • NNI
    NNI
    +關注

    關注

    0

    文章

    3

    瀏覽量

    6379
  • 機器學習
    +關注

    關注

    66

    文章

    8471

    瀏覽量

    133706
收藏 人收藏

    評論

    相關推薦

    阿里巴巴大數據產品最新特性介紹--機器學習PAI

    以下內容根據演講視頻以及PPT整理而成。本次分享主要圍繞以下五個方面:PAI產品簡介自定義算法上傳數加智能生態市場AutoML2.0自動調AutoLearning自動
    發表于 09-18 14:57

    教你怎樣學會PID調

    不會PID調?這篇文章圖文結合帶你學會PID調!讓你成為PID調大神!!!
    發表于 01-06 07:47

    PID調的相關資料分享

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

    針對PID調進行詳細的講解

    ??大家好,我是小政。本篇文章我將針對PID調進行詳細的講解,讓每位小伙伴能夠對比例、積分、微分三個參數如何調節有更加清晰的理解。一、調步驟確立機械中值直立環(內環)——Kp極性、
    發表于 01-14 06:26

    NNI

    NNI包括內部網絡節點接口(I-NNI)和外部網絡節點接口(E-NNI)兩種。I-NNI指屬于一個管理域或多個具有信任關系的控制面實體間的雙向信令接口,負責支持網絡中連
    發表于 06-06 12:48 ?4702次閱讀

    WinGUI_2.3調軟件

    英文版軟件,很好的軟件,WinGUI_2.3調軟件
    發表于 12-08 14:28 ?3次下載

    NAZA_驅動調軟件及說明書

    NAZA 驅動調軟件,需要的可以看一看了
    發表于 02-15 15:10 ?0次下載

    CF飛控調說明

    CF飛控調說明
    發表于 10-09 14:56 ?15次下載

    深度學習機器學習深度的不同之處 淺談深度學習的訓練和調

    近年來,深度學習作為機器學習中比較火的一種方法出現在我們面前,但是和非深度學習機器學習相比(我
    發表于 05-02 10:30 ?4428次閱讀

    深度學習調經驗

    對于深度學習本人也是半路出家. 現在的工作內容主要就是使用CNNCV任務. 干調這種活也有兩年時間了. 我的回答可能更多的還是側重工業應用, 技術上只限制在CNN這塊.
    的頭像 發表于 06-08 14:41 ?2418次閱讀

    機器學習全靠調?谷歌發布顛覆性研究

    不訓練不調,AI自動構建超強網絡,告別煉丹一大步
    的頭像 發表于 06-16 09:41 ?2741次閱讀

    機器學習的模型評估與調大法 想學的快上車

    由于文章較長,所以我還是先把目錄提前。 一、認識管道流 1.1 數據導入 1.2 使用管道創建工作流 二、K折交叉驗證 2.1 K折交叉驗證原理 2.2 K折交叉驗證實現 三、曲線調 3.1 模型
    的頭像 發表于 09-25 10:57 ?2222次閱讀
    結<b class='flag-5'>機器</b><b class='flag-5'>學習</b>的模型評估與<b class='flag-5'>調</b><b class='flag-5'>參</b>大法  想學的快上車

    機器學習8大調技巧

    今天給大家一篇關于機器學習調技巧的文章。超參數調優是機器
    的頭像 發表于 03-23 08:26 ?862次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學習</b>8大<b class='flag-5'>調</b><b class='flag-5'>參</b>技巧

    LSTM神經網絡的調技巧

    長短時記憶網絡(Long Short-Term Memory, LSTM)是一種特殊的循環神經網絡(RNN),它能夠學習長期依賴信息。在實際應用中,LSTM網絡的調是一個復雜且關鍵的過程,直接影響
    的頭像 發表于 11-13 10:01 ?1341次閱讀

    BP神經網絡的調技巧與建議

    BP神經網絡的調是一個復雜且關鍵的過程,涉及多個超參數的優化和調整。以下是一些主要的調技巧與建議: 一、學習率(Learning Rat
    的頭像 發表于 02-12 16:38 ?355次閱讀
    主站蜘蛛池模板: 天堂在线观看视频 | 涩狠狠狠狠色 | 91aaa免费观看在线观看资源 | 国产yin乱大巴视频 国产爱v | 天天拍夜夜操 | 五月激情综合婷婷 | 国产精品午夜国产小视频 | 中文字幕在线观看一区二区三区 | 国内精品久久影视 | 性欧美精品xxxx | 一级毛片西西人体44rt高清 | 色视频免费国产观看 | 女人张开腿双腿让男人桶 | 在线观看www妖精免费福利视频 | 特级无码毛片免费视频尤物 | 大喷水吹潮magnet | 青草视频在线观看国产 | xxxx日本xx| 日韩专区一区 | 嫩草影院网站入口 | 一区二区三区四区在线视频 | 香焦视频在线观看黄 | 午夜精品久久久久久久久 | 高清国产亚洲va精品 | 国产精品免费久久久久影院 | 久久99热狠狠色精品一区 | 婷婷香蕉 | 久久99操 | 丝袜美腿一区 | 永久免费视频网站在线观看 | 国产免费一区二区三区在线 | 热re99久久国产精品 | 青青久操视频 | 天堂中文在线免费观看 | 四虎在线最新永久免费播放 | 午夜在线观看视频 | 日产精品卡二卡三卡四卡无卡乱码 | 加勒比一木道|视频在线看 加勒比在线免费视频 | 香蕉成人国产精品免费看网站 | 18黄网站| 国产成人在线播放视频 |