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

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

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

3天內不再提示

使用PyTorch加速圖像分割

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-08-31 14:27 ? 次閱讀

英特爾

使用 Intel 擴展 PyTorrch 來提升圖像處理性能

PyTorrch提供了巨大的CPU性能,并且隨著PyTorrch的Intel擴展而可以進一步加速。 我用PyTorrch 1.13.1(與ResNet34 Ulet 結構)培訓了一個AI圖像分割模型,以便從衛星圖象中確定道路和速度限制,所有這些都在第四Gen Intelé Xeon可縮放處理器上進行。

我會帶你們走走這些步驟 與一個稱為SpaceNet5的衛星圖像數據集合作 以及如何優化代碼 使CPU的深層學習工作量

在我們開始之前,一些家務...

本條所附的代碼可在下列文件的示例文件夾中查閱:PyTorrch 倉庫的 Intel 擴展. 我從從衛星圖像(CRESI)儲存庫中抽取城市規模道路。 我對它進行了改造, 以適應第四 Gentel Xeon 處理器, 以及PyTorrch 優化和PyTorch 的 Intel 擴展名優化。 特別是,我能夠利用這里的筆記本.

你可以找到我給你的隨同談話在YouTube上.

我強烈建議這些文章詳細解釋如何開始使用SpaceNet5數據:

空間網5基線——第1部分:圖像和標簽準備

空間網5基線——第2部分:培訓公路速度分割模式

空間網5基線——第3部分:從衛星圖像中提取公路速度矢量

SpaceNet 5 SpaceNet 5 贏贏模型發布模式:道路的終點

我引用了Julien Simon的兩個Hugging Face博客,金屬-16xl:

使用 Intel Sapphire Rapids 的加速火爐變速器, 第1部分

使用 Intel Sapphire Rapids 的加速火炬變速器,第2部分

使用 CPU 實例而不是在主要云服務供應商( CSP) 使用 GPU 實例可能節省大量成本。 最新的處理器仍在向 CSP 推出, 所以我正在使用 INTel Xeon 第四次 Gente Intel Xeon 處理器, 該處理器設在 Intel 開發者云上( 您可以在此報名 ) :. 云信息 com).

在 AWS 上,您可以從列 約*在你之后的EC2實例此處預覽的標記(圖1)在編寫本報告時,新的AI加速發動機Intel 高級母體擴展裝置(Intel AMX)僅供光金屬使用,但不久將在虛擬機器上啟用。

wKgaomTv_YiAcr7uAACsIYmzVKU493.png

圖1 圖1AWS EC2(作者圖像)上的第四次Gen Xeon實例清單

在 Google Cloud* 平臺上,您可以從第四 Gen Xeon 可縮放處理器 C3 VMs(圖2)中選擇。

wKgZomTv_Y-ACYqeAABYe4dCC64475.png

圖2 圖2. Google Cloud平臺上的第四 Gen Intel Xeon 可縮放處理器實例列表(作者圖像)

硬件介紹和優化

2023年1月釋放了第四 Gen Intel Xeon 處理器,我使用的光金屬實例有兩個插座(每個插座有56個物理核心),504GB內存和英特爾 AMX 加速。 我在后端安裝了幾個關鍵庫,以控制和監測我在CPU上使用的插座、內存和核心:

numactl(與sudo APT- Get 安裝 numactl)

伊利維埃米耶馬洛茨(與安裝 libjemalloc 的 sudo appet- get)

intel- openmp(與conda 安裝 intel- openmp)

gperftotototool 的 gperfftotototo 工具, gperfftototo 工具工具(與conda 安裝 gperftotototool 的 gperfftotototo 工具, gperfftototo 工具工具 - c conda- forge 的 gperftotototool 的 gperfftotototo 工具, gperfftototo 工具工具 - c conda- forge)

PyTorrch PyTorch 和 Intel 擴展的 PyTerch 都有輔助腳本, 因而不需要明確使用intel- openmp和numactl,但是它們確實需要安裝在后端。如果您想要設置它們用于其他工作,這就是我用來用于 OpenMP * 的內容。

導出 縮寫(_num) 縮寫(_N)=36 導出 KMP_AFFIY=granciality=fine, compact, 1,0 導出 kmp_ 阻塞時間=1

. 何處縮寫(_num) 縮寫(_N)是分配給該任務的線條數,kmp- 親度影響線條親和設置(包括相互接近的包裝線、釘線狀態),以及kmp_ 阻塞時間以毫秒設定時間, 空線在睡覺前應該等待時間 。

以下是我用來做的東西numactl …

numactl - C 0-35 - membind=0 train.

在那里... ... 在那里...-C指定要使用和-- memembind -- membind指示程序只使用一個套接字( 在這種情況下, 套接字為 0 ) 。

空間網數據

我用的是衛星圖像數據空間網5挑戰不同城市可免費下載AWS S3桶:

aws s3是 s3://spacenet-dataset/spacenet/SN5_roads/tarballs/ -- -- 人類可讀

2019-09-03 20:59 3.8 GIB SN5_Roads_test_public_AOI_7_Moscow.tar.gz 2019-09-24 08:43:02 3.2 GIB SN5_test_public_AOI_7_Moscow.gz 2019-09-24 08:43:02 GIB SN5_test_ public_AOI_8_San_Juan.tar.gz 2019-09-14 13:13:19-09-14 13:13:3:34.5 GIB SN5_test_rations_train_AOI_8_Mumbai.tar.gz

您可以使用以下命令下載和拆解文件 :

aws s3 cp s3://spacenet-dataset/spacenet/SN5_roads/tarballs/SN5_roads_train_AOI_7_Moscow.tar.gz. tar-xvzf ~/spacenet5data/moscow/SN5_roads_train_AOI_7_Moscow.tar.gz z

數據集準備

我使用了莫斯科衛星衛星圖像數據集,該數據集由1,352張1,300比1,300像素的1,352張圖像組成,在不同的文本文件中有相應的街道標簽,其中包括8波段多頻譜圖像和3波段RGB圖像。圖3顯示了四種RGB衛星圖像樣本及其相應的面具。yped_ masks. py 速度和量從 CRESI 倉庫生成分隔面罩的腳本 。

wKgaomTv_cyAOb5JAAKxR7yiTZM410.png

圖3 圖33. 莫斯科(頂行)的衛星圖像3頻道RGB芯片和具有不同速度限制(底排)的對應像素分離面罩(作者圖像)

還有一個JSON配置文件,必須更新其余所有組成部分:培訓和驗證分解、培訓和推論。在此可以找到一個示例配置。我進行了80:20的培訓/驗證分解,確保指向正確的衛星圖像文件夾和相應的培訓面具。以GitHub為例的筆記本,.

培訓ResNet34聯合國模式

我做了一些修改cresi 縮寫為了在CPU上運行并優化培訓,以下的代碼描述如下,以便運行在CPU上并優化培訓。自定義模型 = nn.DataParallel( 模型). cuda ()與自定義模型 = nn.DataParallel( 模型)和在列列. py腳本中01_tran.py 01_tran.py 01_tran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py刪除腳本irch.randn( 10) cuda ().

為優化培訓,增加intel_ extension_ for_ pytorch 導入為 ipex 的 intel_ extension_ for_ pytorch中輸入對帳單的輸入對帳單列列. py在將模型和優化器定義如下之后:

自我模型 = nn.DataParallel( 模型) 自我. 優化 = 優化( 自我. 模型. 參數 (), lr= config. lr)

添加Ex. 優化使用 BF16 精度的行, 而不是 FP32:

自我模范,自我優化 = ipex. 優化(自. model, 優化 = self. 優化, dtype= torch.bfloat16)

添加一條行, 用于混合精度訓練, 只需在前方過路和計算損失函數前完成 :

使用 torch. cpu. amp. autocast () : 如果動詞 : 打印 (“ 輸入. shape, 目標. shape : ” , 輸入. shape, 目標. shape ) 輸出 = 自我 。 模型( 輸入) 計量 = self. calculate_ loss_ single_ channel( 輸出、 目標、 計量、 訓練、 超大小 )

現在我們已經優化了訓練守則, 我們可以開始訓練我們的模型。

喜歡SpaceNet 5 競賽獲勝者,我訓練了一個 ResNet34 編碼器 Unet 解碼器模型。該模型經過了圖像網絡重量的預先訓練,而骨干在訓練期間完全解凍。01_tran.py 01_tran.py 01_tran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py但為了控制硬件的使用, 我使用了一個助手腳本。 實際上有兩個助手腳本: 一個是股票 PyTorch 的腳本, 一個是 PyToch 的 Intel 擴展版 。 它們都完成了同樣的事情, 但第一個來自股票的腳本是后端. xeon. run_ cpu,第二個來自 英特爾擴展的PyTorrch是Ipexrun 擴展.

這是我在指揮線上運行的:

python - m short. trachends.xeon. run_ cpu - stinstances 1 -- ncores_per_instance 32  -- log_path/ home/devcloud/spacenet5data/ moscow/v10_xeon4_ devcloud22. 04/logs/run_cpu_logs/home/devcloud/cresi 縮寫/cresi 縮寫/01_train. py / home/devcloud/cresi 縮寫/cresi 縮寫/cresi 縮寫/configs/ ben/v10_xeon4_ baseline_ben.json -- fold=0

Ipexrun 擴展 - stinstance 1 -- ncore_per_instance 32/ home/devcloud/cresi 縮寫/cresi 縮寫/01_tran.py 01_tran.py 01_tran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py/ home/devcloud/cresi 縮寫/cresi 縮寫/cresi 縮寫/configs/ben/v10_xeon4_ baseline_ben.json -- fold=0

在這兩種情況下,我都要求PyTorrch在一個有32個核心的插座上進行訓練。 運行后,我得到一份打印出哪些環境變量在后端設置,以了解PyTorrch是如何使用硬件的:

INFO - 使用 CDMalloc 內存分布器INFO - 縮寫(_num) 縮寫(_N)=32 INFO - 使用 Intel OpenMP InFO - KMP_AFITY=granality=fine, compact, 1,0INFO - KMP_BLOCICTIME=1 INFO - LD_PRELOAD=/ home/devcloud/.conda/env/py39/lib/lib/lib/libclomp5.so:/home/dloud/.conda/env/py39/b/bin/python-u 01_tran.py 01_tran.py 01_tran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.py 01_triran.pycongs/ben/v10_xon4_baseline_ben.jfold=0

在培訓期間,我確保我的完全損失功能正在減少(即模式正在趨于一致,尋找解決辦法)。

推斷

在培訓模型后, 我們可以開始僅從衛星圖像中進行預測。 在 evval. py 推斷腳本中, 將導入的 intel_ extension_ for_ pytorch 添加為導入語句的 Ipex 。 在裝入 PyTorch 模型后, 使用 PyTorrch 的 Intel 擴展來優化 BF16 推斷的模型 :

模型 = irch.load( os. path. join( path_ model_ 量重, “ fold_ best. pth”.format( fold)), 地圖_ 位置 = lambda 存儲, loc: 存儲) 模型. eval () 模型 = ipex. optimize( 模型, dtype = rch. bfloat16)

在進行預測之前,增加兩行,以達到混雜精度:

使用 torch.no_ grad (): 使用 rch. cpu. amp. autocast (): 用于 pbar 中的數據 : 樣本 = rch. autograd. 可變( 數據 [ “ 圖像 , 揮發性 = True ) 預測 = 預測 (模型、 樣本、 翻頁 = self. flips )

運行推論,我們可以使用02_eval.py現在我們有了經過訓練的模型, 我們可以在衛星圖像上作出預測(圖4), 我們可以看到它似乎在繪制與圖像相近的道路圖!

wKgZomTv_iOAKEgwAANcd7bv7L4608.png

圖4 圖41. 莫斯科衛星圖像和隨附的道路預測(作者圖像)

我意識到我所訓練的模型過于適合莫斯科圖像數據,贏得此項挑戰的解決方案從六個城市(拉斯維加斯、巴黎、上海、喀土穆、莫斯科、孟買)獲得的數據和新城市的表現良好。 在未來,值得測試的一件事就是在所有六個城市進行培訓,并在另一個城市進行推論,以復制其結果。

關于處理后的說明

還可以采取進一步的后處理步驟,在地圖中添加掩碼作為圖表特征。 您可以在此閱讀關于后處理步驟的更多信息:

空間網5基線——第3部分:從衛星圖像中提取公路速度矢量

后處理腳本

結語

總之,我們:

創建了1 352個圖像培訓面罩(速度限制),與我們的培訓衛星圖像數據(來自.geojson文本文件標簽)相對應。

定義了用于培訓和推斷的配置文件

將我們的數據分成培訓和鑒定組

優化了我們的CPU培訓守則,包括使用PyTorch和BF16的Intel擴展

在第四 Gentel Xeon CPU 上培訓了表演者ResNet34 UNet 模型

Ran 初始推論,以看到預測速度限制面罩的速度

您可以找到在此列出第四 Gentel Xeon CPU 的詳細基準.

下一步步驟

使用 PyTorrch 的 Intel 擴展擴展號, 擴展 Intel CPU 的優化 :

pip 安裝 intel- extension 用于 Pytorch 的 Intel- extension 設備

git 克隆 https://github.com/intel/intel/intel-extension-for-pytorch

聯系我 聯系連連In如果你還有問題要問!

PyTorrch 的 Intel 擴展的更多信息可在此處找到.

獲取軟件

我鼓勵你查查英特爾的另外一個AIAI 工具工具框架框架框架框架優化和了解開放、基于標準的單api構成英特爾的AI軟件組合基礎的多神多神多神多神多神多造編程模式。

有關第四任英特爾Xeon 縮放可縮放處理器的更多詳情,訪問AI 平臺英特爾是如何授權開發商運行高性能、高效端對端的AI管道的。

PyTollch 資源

啟動 PyTork 啟動

D. 討論討論

文檔文件文件


審核編輯:湯梓紅

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

    關注

    19

    文章

    3480

    瀏覽量

    185748
  • AI
    AI
    +關注

    關注

    87

    文章

    30106

    瀏覽量

    268399
  • 圖像分割
    +關注

    關注

    4

    文章

    182

    瀏覽量

    17976
  • pytorch
    +關注

    關注

    2

    文章

    803

    瀏覽量

    13145
收藏 人收藏

    評論

    相關推薦

    PCB缺陷檢測中圖像分割算法

    圖像分割圖像處理中占有重要的地位,分割結果的好壞直接影響圖像的后續處理。本文介紹了4種常用的圖像
    發表于 06-16 15:31 ?0次下載
    PCB缺陷檢測中<b class='flag-5'>圖像</b><b class='flag-5'>分割</b>算法

    圖像分割—基于圖的圖像分割

    圖像分割—基于圖的圖像分割圖像分割—基于圖的圖像
    發表于 11-19 16:17 ?0次下載

    基于Matlab圖像分割的研究

    圖像分割圖像處理過渡到圖像分析這個過程中起著非常重要的作用,它是圖像工程的核心,圖像
    發表于 01-04 15:10 ?0次下載

    基于加速k均值的譜聚類圖像分割算法改進_李昌興

    基于加速k均值的譜聚類圖像分割算法改進_李昌興
    發表于 03-19 19:25 ?0次下載

    圖像分割圖像邊緣檢測

     圖像分割的研究多年來一直受到人們的高度重視,至今提出了各種類型的分割算法。Pal把圖像分割算法分成了6類:閾值
    發表于 12-19 09:29 ?1.1w次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>分割</b>和<b class='flag-5'>圖像</b>邊緣檢測

    圖像分割技術的原理及應用

    圖像分割至今尚無通用的自身理論。隨著各學科許多新理論和新方法的提出,出現了許多與一些特定理論、方法相結合的圖像分割方法。特征空間聚類法進行圖像
    發表于 12-19 15:00 ?4.1w次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>分割</b>技術的原理及應用

    圖像分割的基本方法解析

    本文詳細介紹了圖像分割的基本方法有:基于邊緣的圖像分割方法、閾值分割方法、區域分割方法、基于圖論
    發表于 12-20 11:06 ?10.9w次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>分割</b>的基本方法解析

    基于內容的圖像分割方法綜述

    圖像分割是指將圖像分成若干具有相似性質的區域的過程,是許多圖像處理任務的預處理步驟.近年來,國內外學者主要研究基于圖像內容的
    發表于 01-02 16:52 ?2次下載
    基于內容的<b class='flag-5'>圖像</b><b class='flag-5'>分割</b>方法綜述

    PyTorch教程7.2之圖像卷積

    電子發燒友網站提供《PyTorch教程7.2之圖像卷積.pdf》資料免費下載
    發表于 06-05 10:13 ?0次下載
    <b class='flag-5'>PyTorch</b>教程7.2之<b class='flag-5'>圖像</b>卷積

    PyTorch教程14.1之圖像增強

    電子發燒友網站提供《PyTorch教程14.1之圖像增強.pdf》資料免費下載
    發表于 06-05 14:24 ?0次下載
    <b class='flag-5'>PyTorch</b>教程14.1之<b class='flag-5'>圖像</b>增強

    PyTorch教程14.9之語義分割和數據集

    電子發燒友網站提供《PyTorch教程14.9之語義分割和數據集.pdf》資料免費下載
    發表于 06-05 11:10 ?0次下載
    <b class='flag-5'>PyTorch</b>教程14.9之語義<b class='flag-5'>分割</b>和數據集

    人體分割識別圖像技術的原理及應用

    人體分割識別圖像技術是一種將人體從圖像分割出來,并對人體進行識別和特征提取的技術。該技術主要利用計算機視覺和圖像處理算法對人體
    的頭像 發表于 06-15 17:44 ?1052次閱讀

    什么是圖像分割?圖像分割的體系結構和方法

    圖像分割(Image Segmentation)是計算機視覺領域中的一項重要基礎技術,是圖像理解中的重要一環。前端時間,數據科學家Derrick Mwiti在一篇文章中,就什么是圖像
    的頭像 發表于 08-18 10:34 ?5998次閱讀
    什么是<b class='flag-5'>圖像</b><b class='flag-5'>分割</b>?<b class='flag-5'>圖像</b><b class='flag-5'>分割</b>的體系結構和方法

    圖像分割和語義分割的區別與聯系

    圖像分割和語義分割是計算機視覺領域中兩個重要的概念,它們在圖像處理和分析中發揮著關鍵作用。 1. 圖像
    的頭像 發表于 07-17 09:55 ?692次閱讀

    圖像語義分割的實用性是什么

    圖像語義分割是一種重要的計算機視覺任務,它旨在將圖像中的每個像素分配到相應的語義類別中。這項技術在許多領域都有廣泛的應用,如自動駕駛、醫學圖像分析、機器人導航等。 一、
    的頭像 發表于 07-17 09:56 ?354次閱讀