精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

OpenMMLab 各算法庫的評測指標集成

jf_pmFSk4VX ? 來源:GiantPandaCV ? 作者:GiantPandaCV ? 2022-11-03 10:16 ? 次閱讀

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

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

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

GitHub 主頁:

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

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

歡迎大家來 star~

中文文檔:

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

MMEval 簡介

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

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

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

支持多種機器學習框架,根據輸入自動分發對應實現

MMEval 的架構如下圖所示:

19698e3e-5acb-11ed-a3b6-dac502259ad0.png

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

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 Accuracy
import 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,其接口設計如下圖所示:

198201ee-5acb-11ed-a3b6-dac502259ad0.png

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

MPI4Py torch.distributed Horovod paddle.distributed
MPI4PyDist TorchCPUDist & TorchCUDADist TFHorovodDist PaddleDist

多機器學習框架支持

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

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

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

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

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

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

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

from mmeval.core import dispatch


@dispatch
def compute(x: int, y: int):
  print('this is int')


@dispatch
def compute(x: str, y: str):
  print('this is str')


compute(1, 1)
# this is int


compute('1', '1')
# this is str

愿景

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

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

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

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

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

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

    關注

    1

    文章

    3178

    瀏覽量

    48730
  • 計算機視覺
    +關注

    關注

    8

    文章

    1696

    瀏覽量

    45930
  • 算法庫
    +關注

    關注

    0

    文章

    4

    瀏覽量

    1523

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

文章出處:【微信號:GiantPandaCV,微信公眾號:GiantPandaCV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    mini57系列運行帶算法庫的程序,編譯沒有錯誤但無法運行是為什么?

    我用mini57系列的芯片跑做一個心率檢測的產品。加入心率算法庫后,發現程序無法運行,但是編譯沒有報錯。我在線仿真發現無法進入main函數,程序運行不了。算法庫是用新塘的demo在keil的環境下生成的。 不知道是為什么。
    發表于 01-15 08:33

    ADI算法庫,“警告”解決方案

    嗎? 答案來了~ 1.INPUT_SECTION中類似于adi_fastb0_prio1_r,adi_fastb0_prio0_temp這些section名稱的定義應該都是算法庫中已經定義好的,所以
    發表于 09-12 22:19

    CC3200有沒有關于指紋識別算法算法庫

    CC3200有沒有指紋識別相關的算法庫,或者可授權的第三方算法license,剛才發錯地方了,重新發一次。
    發表于 05-14 11:22

    C6678算法庫問題

    您好: 不知道TI有沒有矩陣矢量算法庫,我現在想要實現復數矩陣間的加減乘除,開方,共軛等運算。如果有收費的,我也可以買。 謝謝!
    發表于 06-21 00:36

    c++算法庫的移植問題

    目前有一個算法庫 用的c++ ?用ccs在dsp上可以調試 現在希望把庫放在8168的dsp上 ?需要將c++轉換成c 有個工具 mmCC C++-to-C Translator、 不知道論壇里有沒有 或者大家誰有 如果找不到mmcc 那么 ?8168上dsp用c調用c++庫 有沒有可行性
    發表于 06-21 13:14

    請問關于SigmaStudio的算法庫資源主要有哪些?

    最近才開始接觸SigmaStudio和SigmaDSP,SigmaStudio的算法庫資源據說是很大的優勢,這個我個人覺得是很重要的,沒有多少人愿意自己去開發這些算法,請問ADI的工程師大牛們,這些算法庫主要有哪些?對于車載音頻
    發表于 08-06 07:02

    ADI音效算法庫

    不含源碼,只是調用的庫函數。包含一些常用的音頻算法庫。壓縮包內文件一覽: 附件ADI算法參考.rar2.2 MB
    發表于 10-17 15:19

    mini57系列運行帶算法庫的程序,編譯沒有錯誤但無法運行是為什么?

    我用mini57系列的芯片跑做一個心率檢測的產品。加入心率算法庫后,發現程序無法運行,但是編譯沒有報錯。我在線仿真發現無法進入main函數,程序運行不了。算法庫是用新塘的demo在keil的環境下生成的。 不知道是為什么。
    發表于 08-22 08:16

    新唐有提供BLDC軟件算法庫嗎?

    我看新塘的介紹里面 提供BLDC 軟件算法庫
    發表于 09-06 07:58

    lpc1700開發板_dsp算法庫

    lpc1700開發板_dsp算法庫,有需要的下來看看。
    發表于 01-13 17:02 ?6次下載

    Crypto算法庫使用技巧之基于STM32 AES GCM應用提示

    引言 X-CUBE-CRYPTOLIB 是基于 STM32 的 Crypto 算法庫,支持對稱密鑰、非對稱密鑰、哈希等多種算法。正確地使用 Cyrptolib 算法庫,可以在應用程序中實現數據加密
    的頭像 發表于 09-24 14:23 ?3490次閱讀

    Crypto算法庫使用技巧 —— 基于STM32 AES GCM應用提示

    X-CUBE-CRYPTOLIB 是基于 STM32 的 Crypto 算法庫,支持對稱密鑰、非對稱密鑰、哈希等多種算法。正確地使用 Cyrptolib 算法庫,可以在應用程序中實現數據加密、設備身份認證、加密通信等多種應用層所
    發表于 02-08 15:23 ?1次下載
    Crypto<b class='flag-5'>算法庫</b>使用技巧 —— 基于STM32 AES GCM應用提示

    摩爾線程與OpenMMLab戰略合作:推動算法框架與GPU協同發展,共筑AI開發者繁榮生態

    近日,摩爾線程智能科技(北京)有限責任公司(簡稱:摩爾線程)與人工智能視覺算法開源體系OpenMMLab正式達成戰略合作。 摩爾線程多GPU是智能算力的先進基礎設施,開源算法是人工智能的重要推動力
    發表于 11-09 14:59 ?541次閱讀

    N32G032算法庫使用指南

    N32G032算法庫使用指南
    發表于 11-11 21:50 ?0次下載
    N32G032<b class='flag-5'>算法庫</b>使用指南

    深度學習算法庫框架學習

    深度學習算法庫框架學習 深度學習是一種非常強大的機器學習方法,它可以用于許多不同的應用程序,例如計算機視覺、語言處理和自然語言處理。然而,實現深度學習技術需要使用一些算法庫框架。在本文中,我們將探討
    的頭像 發表于 08-17 16:11 ?670次閱讀