日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微软开源自动机器学习工具 – NNI安装与使用

發布時間:2024/7/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软开源自动机器学习工具 – NNI安装与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微軟開源自動機器學習工具 – NNI安裝與使用

  • NNI的眾多特點
  • 開啟你的第一次NNI之旅
      • · 安裝
      • · 三步準備實驗
        • (1) 準備搜索空間
        • (2) 準備實驗代碼
        • (3)定義實驗配置
      • · 一行命令開始訓練
      • · webUI查看結果
  • 擴展閱讀
      • · 基礎定義
      • · 擴展訓練
      • · 更多

??在機器學習建模時,除了準備數據,最耗時耗力的就是嘗試各種超參組合,找到最佳模型的過程了。對于初學者來說,常常是無從下手。即使是對于有經驗的算法工程師和數據科學家,也是很難把握所有的規律,只能多次嘗試,找到較好的超參組合。而自動機器學習這兩年成為了熱門領域,它將機器學習過程中包括自動特征提取、模型選擇、參數調節等過程自動化地學習,使學習過程在給定數據和任務上學習和泛化能力非常強大。NNI (Neural Network Intelligence) 是微軟開源的自動機器學習工具包,與當前的各種自動機器學習服務或工具相比,有非常獨特的價值。NNI著力解決超參調試過程的挑戰,通過內置的超參選擇算法、算力的強大支持和便捷的交互方式來加速和簡化超參搜索的過程。更多詳細內容和代碼可以參考NNI的 github地址。
??本篇是NNI (Neural Network Intelligence) 系列文章的開篇,將首先介紹NNI 的特點和價值,然后用一個簡單的mnist樣例帶您開啟自動化機器學習之旅。后續系列文章還將從NNI的高效率——能夠幫助節省時間和減少代碼、NNI的分布式——支持OpenPAI等多端部署、NNI的可擴展性——支持多種tuner和assessor等特點介紹NNI。

NNI的眾多特點

??1. 安裝簡潔:通過pip命令就能完成安裝;
??2. 支持私有部署,用自己的計算資源就能進行自動機器學習;
??3. 支持分布式調度:NNI 可以在單機上進行試驗,還支持多種分布式調度平臺,如通過 SSH 控制多臺 GPU 服務器協同完成試驗,或通過OpenPAI, Azure, Kubernetes等在獨立的 Docker 中運行;
??4. 對超參搜索的底層支持:大部分自動機器學習服務與工具的服務都是針對于圖片分類等特定的任務。而NNI通過讓用戶提供訓練代碼和超參搜索范圍, 依靠NNI內置算法和訓練服務來搜索最佳的超參和神經架構,NNI為有一定模型訓練經驗的用戶提供更加通用的調參方式,便于用戶做出更多嘗試、決策和加入思考,并完整參與整個訓練過程;
??5. 隨庫自帶眾多實例和流行的調參算法;
??6. 架構簡潔、對開發和擴展及其友好。

開啟你的第一次NNI之旅

??這部分將以識別手寫字體mnist為例介紹NNI如何在本地機器使用注釋方式定義搜索空間提交訓練任務而提高效率,并介紹NNI的基礎功能與使用。要通過NNI進行實驗,用戶只需要三步即可完成實驗準備,(1)定義搜索空間(search space);(2)上傳代碼(codes);(3)定義實驗 ,用戶可以使用一行命令行即可開始實驗,并可使用webUI在網頁端實時查看實驗進程和結果。
??讀完這部分,你將了解如何編寫配置文件和通過注釋形式定義搜索空間,你將了解如何使用NNI在本地機器上提交任務,并了解如何通過webUI清晰地檢查實驗結果和超參數的使用對結果的影響。nni提供的mnist代碼示例文件已開源至github,克隆后可在目錄~/nni/examples/mnist中查看,此外本例依賴tensorflow框架,還需要使用pip安裝tensorflow。

$ git clone https://github.com/Microsoft/nni.git $ python3 -m pip install tensorflow

· 安裝

??介紹例子之前首先安裝NNI,NNI提供簡單快速的源碼編譯或pip安裝方式,NNI目前支持在ubuntu 16.04及更高版本和Mac OS系統上進行安裝,用戶需要環境中安裝有python高于3.5的版本,本例在ubuntu16.04系統上通過一行pip命令安裝 :

$ python3 -m pip install --user --upgrade nni

· 三步準備實驗

??用戶只需要三步即可完成實驗準備,(1)定義搜索空間(search space);(2)上傳代碼(codes);(3)定義實驗配置(experiment) 。

??代碼結構非常簡單,其中文件search_space.json代表定義搜索空間,代碼mnist.py代表上傳代碼,配置文件config.yml代碼定義實驗,可在~/nni/example/trials/mnist目錄中看到目錄結構。

(1) 準備搜索空間

??首先使用json文件定義超參數的搜索空間,搜索空間包括搜索的變量名、搜索的類型和搜索的值范圍。此例定義了網絡的卷積層尺寸(conv_size)在(2,3,5,7)的范圍中搜索,隱藏層的尺寸(hidden_size)在(124,512,1024)的范圍搜索,學習率(learning_rate)在(0.0001,0.1)的范圍搜索等等。

(2) 準備實驗代碼

??在實驗代碼中引入nni包,并以幾行代碼加入nni的參數傳遞和結果回傳即可將nni與實驗代碼結合起來。

(3)定義實驗配置

??通過yaml配置文件來定義實驗, 配置文件中包含實驗的基礎信息、訓練平臺的選擇、搜索空間的使用注釋選擇、協調器的選擇和訓練任務的配置等。此處定義方式是:在本地訓練任務、使用注釋方式定義搜索空間、使用TPE協調器, 其內容基本如下所示:

· 一行命令開始訓練

??完成以上三步(定義搜索空間、上傳代碼、定義實驗)后,你已經有配置文件、搜索空間和訓練代碼,配置文件的訓練任務配置中連接了定義主代碼的路徑和執行命令、定義搜索空間定義方式及位置。此時,只需要一句命令即可提交任務。

$ nnictl create --config ~/nni/examples/trials/mnist-annotation/config.yml

· webUI查看結果

??提交訓練任務之后終端會返回提交任務的索引ID及webUI的網址,在瀏覽器中打開url地址即可得到NNI解析出的實驗信息及實驗實時結果。
??首頁可以所有訓練信息和具體的超參組合,并支持對回傳結果排序。

??優化進度頁面可以看到按時序排列的精度或損失值(此圖為精度)??梢钥吹?#xff0c;時間越靠后(右側),精度高的越多,這說明選擇的超參探索算法隨著時間能找到一些好的超參空間繼續探索。

??通過超參的分布圖來直觀地看到哪些超參值會明顯比較好,或者看出它們之間的關聯。通過下面的顏色圖就能直觀地看到紅色(即精度較高的超參組合)線條所表達的豐富信息。如:卷積核大一些會表現較好;學習率小一些,表現基本都不錯;Batch_size較大時變現更好等等。

??第一次NNI之旅的體驗如何?本文通過闡述NNI 的特點、后續的安裝和如何使用簡單例程動手實踐對NNI做了一個簡單的介紹,但NNI的功能不止于此,它的多平臺支持、多種配置方式、分布式調度模式、多種算法支持還等待你來發現和發掘,甚至你也可以作為NNI代碼的貢獻者來自己定義需求。

擴展閱讀

· 基礎定義

1.如何在你的機器上安裝nni?
2.如何使用nnictl工具命令?
3.如何使用web UI?
4.如何定義搜索空間?
5.如何配置定義實驗?
6.如何使用注釋定義搜索空間?
7.如何寫訓練實驗?

· 擴展訓練

1.如何在本地訓練任務?
2.如何在多個機器上訓練任務?
3.如何在OpenPAI上訓練任務?
4.如何在遠程服務器訓練任務?
5.嘗試更多不同的tuners和assessors
6.自己定義一個tuner
7.自己定義一個assessor

· 更多

1.如何創建NNI環境?
2.如何貢獻代碼?
3.如何debug?

總結

以上是生活随笔為你收集整理的微软开源自动机器学习工具 – NNI安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。