<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          支持跨框架評測,這個是你想要的算法評測庫嗎?

          共 3414字,需瀏覽 7分鐘

           ·

          2022-11-04 01:23


          在前段時間 2022 世界人工智能大會(WAIC)上, OpenMMLab 基于新一代訓練架構 MMEngine ,發(fā)布了全新的 OpenMMLab 2.0 視覺算法體系,詳細見上一期內容


          MMEngine 提供了強大靈活的訓練引擎,以及常見的訓練技術,以滿足用戶多樣的模型訓練需求。對于模型評測的需求,MMEngine 也提供了評測指標(Metric)和評測器(Evaluator)模塊,下游算法庫基于 MMEngine 提供的評測指標基類,實現對應任務所需的評測指標。


          OpenMMLab 是深度學習時代最完整的計算機視覺開源算法體系,目前已涵蓋 30+ 研究領域,這些研究領域都有各自任務的評測指標。我們希望能夠將這些評測指標統(tǒng)一起來,以更加易用和開放的方式服務于更多用戶。因此,我們在 MMEngine 中的評測指標模塊基礎上,將原 OpenMMLab 各算法庫的評測指標集成進來,開發(fā)了一個統(tǒng)一開放的跨框架算法評測庫:MMEval


          GitHub 主頁:

          https://github.com/open-mmlab/mmeval

          (文末點擊閱讀原文可直達)

          歡迎大家來 star~


          中文文檔:

          https://mmeval.readthedocs.io/zh_CN/latest



          MMEval 簡介


          MMEval 是一個跨框架的機器學習算法評測庫,提供高效準確的分布式評測以及多種機器學習框架后端支持,具有以下特點:


          1. 提供豐富的計算機視覺各細分方向評測指標(自然語言處理方向的評測指標正在支持中)

          2. 支持多種分布式通信庫,實現高效準確的分布式評測

          3. 支持多種機器學習框架,根據輸入自動分發(fā)對應實現


          MMEval 的架構如下圖所示:



          和已有一些開源的算法評測庫相比,比如 Lightning-AI/metrics,huggingface/evaluate,以及近日開源的 pytorch/torcheval,MMEval 的區(qū)別主要在于對計算機視覺領域評測指標的更全面支持,以及提供跨框架評測的能力


          MMEval 目前提供了 20+ 評測指標,涵蓋了分類,目標檢測,圖像分割,點云分割,關鍵點檢測和光流估計等任務,MMEval 已支持的評測指標可以在文檔中的支持矩陣中查看:https://mmeval.readthedocs.io/zh_CN/latest/get_started/support_matrix.html



          MMEval 安裝與使用


          MMEval 依賴 Python 3.6+,可以通過 pip 來安裝 MMEval:pip install mmeval


          MMEval 中的評測指標提供兩種使用方式,以 Accuracy 為例:


          from mmeval import Accuracyimport numpy as np
          accuracy = Accuracy()
          # 第一種是直接調用實例化的 Accuracy 對象,計算評測指標。labels = np.asarray([0, 1, 2, 3])preds = np.asarray([0, 2, 1, 3])accuracy(preds, labels)# {'top1': 0.5}
          # 第二種是累積多個批次的數據后,計算評測指標。for i in range(10):    labels = np.random.randint(0, 4, size=(100, ))    predicts = np.random.randint(0, 4, size=(100, ))    # 調用 `add` 方法,保存指標計算中間結果。    accuracy.add(predicts, labels)
          # 調用 compute 方法計算評測指標accuracy.compute()# {'top1': ...}# 調用 reset 方法,清除保存的中間結果。accuracy.reset()


          MMEval 中的評測指標還支持分布式評測功能,關于分布式評測的使用方式可以參考教程:https://mmeval.readthedocs.io/zh_CN/latest/tutorials/dist_evaluation.html



          多分布式通信后端支持


          在評測過程中,通常會以數據并行的形式,在每張卡上推理部分數據集的結果,以加快評測速度。而在每個數據子集上計算得到的評測結果,通常不能通過簡單的求平均來與整個數據集的評測結果進行等價。因此,通常的做法是在分布式評測過程中,將每張卡得到的推理結果或者指標計算中間結果保存下來,在所有進程中進行 all-gather 操作,最后再計算整個評測數據集的指標結果。


          MMEval 在分布式評測過程中所需的分布式通信需求,主要有以下兩個:


          • 將各個進程中保存的評測指標計算中間結果 all-gather

          • 將 rank 0 進程計算得到的指標結果 broadcast 給所有進程


          為了能夠靈活的支持多種分布式通信庫,MMEval 將上述分布式通信需求抽象定義了一個分布式通信接口 BaseDistBackend,其接口設計如下圖所示:



          MMEval 中已經預置實現了一些分布式通信后端,如下表所示:



          MPI4Py

          torch.distributed

          Horovod

          paddle.distributed

          MPI4PyDist

          TorchCPUDist & TorchCUDADist

          TFHorovodDist

          PaddleDist



          多機器學習框架支持


          MMEval 希望能夠支持多種機器學習框架,一個最為簡單的方案是讓所有評測指標的計算都支持 NumPy 即可。這樣做可以實現大部分評測需求,因為所有機器學習框架的 Tensor 數據類型都可以轉為 NumPy 的數組。


          但是在某些情況下可能會存在一些問題:


          • NumPy 有一些常用算子尚未實現,如 topk,會影響評測指標的計算速度

          • 大量的 Tensor 從 CUDA 設備搬運到 CPU 內存會比較耗時

          • 如果希望評測指標的計算過程是可導的,那么就需要用各自機器學習框架的 Tensor 數據類型進行計算


          為了應對上述問題,MMEval 的評測指標提供了一些特定機器學習框架的指標計算實現。同時,為了應對不同指標計算方式的分發(fā)問題,MMEval 采用了基于類型注釋的動態(tài)多分派機制,可以根據輸入的數據類型,動態(tài)的選擇不同的計算方式。


          一個基于類型注釋的多分派簡單示例如下:


          from mmeval.core import dispatch
          @dispatchdef compute(x: int, y: int):    print('this is int')
          @dispatchdef compute(x: str, y: str):    print('this is str')
          compute(1, 1)# this is int
          compute('1', '1')# this is str



          愿景


          在機器學習模型實驗和生產過程中,訓練和評測是其中兩個非常重要的階段。


          MMEngine 已經提供了一個靈活強大的訓練架構,而 MMEval 則希望能夠提供一個統(tǒng)一開放的模型評測庫。其中,統(tǒng)一體現在不同領域不同任務的模型評測需求都能夠滿足,開放則體現為與機器學習框架解耦,以更加開放的方式為不同的機器學習框架生態(tài)提供評測功能。


          目前 MMEval 仍處于早期階段,有很多評測指標仍在添加當中,有一些架構設計可能不夠成熟。在之后的一段時間里,MMEval 將主要圍繞以下兩個方向去持續(xù)迭代完善:


          • 持續(xù)的補充添加評測指標,不斷擴展到 NLP、語音、推薦系統(tǒng)等更多的任務領域

          • 支持更多機器學習框架,并且探索多機器學習框架支持的新方式


          非常歡迎社區(qū)小伙伴來體驗 MMEval,提出寶貴意見,如果覺得好用,也歡迎給我們點個 star~




          文末點擊閱讀原文,直達 MMEval GitHub 主頁,歡迎體驗~


          OpenMMLab 官方微信社群



          MM 星探第 3 期|對話明星項目開發(fā)者-圈圈蟲

          2022-10-28

          統(tǒng)一、靈活、全面,這個好用的語義分割開源庫全面升級啦

          2022-10-27

          簡潔易用,更多算法,快來開箱新一代視頻目標感知開源工具箱

          2022-10-26


          瀏覽 59
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV无码国产精品 | 91正在播放 | 含羞草一区二区三区 | 免费国产麻豆 | 99在线精品视频免费观看20 |