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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

Pytorch深度学习实战教程(一):语义分割基础与环境搭建

發(fā)布時間:2023/12/20 pytorch 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch深度学习实战教程(一):语义分割基础与环境搭建 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Pytorch的基本使用&&語義分割算法講解

先從最簡單的語義分割基礎與開發(fā)環(huán)境搭建開始講解。

二、語義分割
語義分割是什么?

語義分割(semantic segmentation) : 就是按照“語義”給圖像上目標類別中的每一點打一個標簽,使得不同種類的東西在圖像上被區(qū)分開來。可以理解成像素級別的分類任務,直白點,就是對每個像素點進行分類。

簡而言之,我們的目標是給定一幅RGB彩色圖像(高x寬x3)或一幅灰度圖像(高x寬x1),輸出一個分割圖譜,其中包括每個像素的類別標注(高x寬x1)。具體如下圖所示:

注意:為了視覺上清晰,上面的預測圖是一個低分辨率的圖。在實際應用中,分割標注的分辨率需要與原始圖像的分辨率相同。

這里對圖片分為五類:Person(人)、Purse(包)、Plants/Grass(植物/草)、Sidewalk(人行道)、Building/Structures(建筑物)。

與標準分類值(standard categorical values)的做法相似,這里也是創(chuàng)建一個one-hot編碼的目標類別標注——本質上即為每個類別創(chuàng)建一個輸出通道。因為上圖有5個類別,所以網(wǎng)絡輸出的通道數(shù)也為5,如下圖所示:

如上圖所示,預測的結果可以通過對每個像素在深度上求argmax的方式被整合到一張分割圖中。進而,我們可以輕松地通過重疊的方式觀察到每個目標。

argmax的方式也很好理解。如上圖所示,每個通道只有0或1,以Person的通道為例,紅色的1表示為Person的像素,其他像素均為0。其他通道也是如此,并且不存在同一個像素點在兩個以上的通道均為1的情況。因此,通過argmax就找到每個像素點的最大索引通道值。最終得到結果為:

當只有一層通道被重疊至原始圖像時,我們稱之為mask,即只指示某一特定類別所存在的區(qū)域。

高分辨率的結果如下圖所示,不同的顏色代表不同的類別:


三、數(shù)據(jù)集
常見的語義分割算法屬于有監(jiān)督學習,因此標注好的數(shù)據(jù)集必不可少。

公開的語義分割數(shù)據(jù)集有很多,目前學術界主要有三個benchmark(數(shù)據(jù)集)用于模型訓練和測試。

第一個常用的數(shù)據(jù)集是Pascal VOC系列。這個系列中目前較流行的是VOC2012,Pascal Context等類似的數(shù)據(jù)集也有用到。

第二個常用的數(shù)據(jù)集是Microsoft COCO。COCO一共有80個類別,雖然有很詳細的像素級別的標注,但是官方?jīng)]有專門對語義分割的評測。這個數(shù)據(jù)集主要用于實例級別的分割以及圖片描述。所以COCO數(shù)據(jù)集往往被當成是額外的訓練數(shù)據(jù)集用于模型的訓練。

第三個數(shù)據(jù)集是輔助駕駛(自動駕駛)環(huán)境的Cityscapes,使用比較常見的19個類別用于評測。

可以用于語義分割訓練的數(shù)據(jù)集有很多:

Pascal Voc 2012:比較常見的物體分類,共21個類別;
MS COCO:由微軟贊助,幾乎成為了圖像語義理解算法性能評價的“標準”數(shù)據(jù)集,共80個類別;
Cityscapes:包含50個歐洲城市不同場景、不同背景、不同季節(jié)的街景的33類標注物體;
Pascal-Context:對于PASCAL-VOC 2010識別競賽的擴展,共59個類別;
KITTI:用于移動機器人及自動駕駛研究的最受歡迎的數(shù)據(jù)集之一,共11個類別;
NYUDv2:2.5維數(shù)據(jù)集,它包含1449張由微軟Kinect設備捕獲的室內(nèi)的RGB-D圖像;
SUN-RGBD:由四個RGB-D傳感器得來,包含10000張RGB-D圖像,尺寸與PASCAL VOC一致;
ADE20K_MIT:一個場景理解的新的數(shù)據(jù)集,這個數(shù)據(jù)集是可以免費下載的,共151個類別。
數(shù)據(jù)集有很多,本系列教程不局限于具體數(shù)據(jù)集,可能也會用到Kaggle比賽之類的數(shù)據(jù)集,具體每個數(shù)據(jù)集怎么處理,數(shù)據(jù)集的格式是什么樣的,后續(xù)文章用到什么數(shù)據(jù)集會具體講解。

四、GPU機器
對于語義分割任務,有個帶有高端GPU顯卡的機器還是非常有必要的,如果沒有,訓練收斂會很慢。

最佳的開發(fā)環(huán)境為Linux,因為在公司的日常工作,基本都是使用Linux云服務器進行模型開發(fā)的工作,提前適應Linux操作系統(tǒng)還是有好處的。

對于學生黨,如果實驗室是做深度學習方向研究的,并且資源完備,那么GPU服務器應該還是能有的,對于GPU服務器的問題不用愁。

但可能由于條件限制,實驗室沒有配備GPU服務器,還想學習深度學習相關的知識,有三種方法:

1、免費云服務器Google Colab
勉強可以一用的是Google Colab,它是一個Google提供的免費GPU服務器,提供的GPU算力還算可以,但是它的主要問題在于需要翻墻和存儲空間小,Google Colab的存儲空間是通過掛載Google Drive得到的,Google Drive只提供15G的免費存儲空間,想要擴展空間,還是需要花錢的。

想使用免費云服務器Google Colab的,可以自行百度教程。

2、阿里云付費GPU云服務器
阿里云提供GPU云服務器資源,有兩種付費模式:包月和按流量付費。有P4服務器,甚至吊炸天的V100服務器。性能強勁,價格也很感人,兩個字形容就是很貴,個人使用者并不推薦購買。除了阿里云提供GPU云服務,騰訊、百度、華為都有相應的服務,但是都很貴。

3、配置一臺電腦主機
可以自己配置一臺臺式主機,也算是對自己的一種投資。配置一臺不錯的,可以用于深度學習訓練的主機需要6000元左右。

深度學習的訓練很依賴顯卡的性能,因此需要配置一個較好的N卡,也就是NVIDIA的顯卡,選顯卡的技巧就是看下顯卡天梯圖:

這個顯卡天梯圖主要包括的是市面常用的顯卡排名,不包括類似V100這樣的價格上10萬的顯卡。

天梯圖,越靠上,顯卡的性能越高,不要選擇右側的AMD顯卡,雖然性能好,但A卡是不支持CUDA的。

根據(jù)自己的預算,選擇顯卡,顯卡的顯存盡量選擇8G以上的,深度學習模型訓練很吃顯存資源。

本人買了微星的RTX 2060 Super,買時的價格是3399元,顯卡很不保值,價格會隨時間越來越低。

配置電腦其實能寫很多,比如CPU、電腦主板、電源、內(nèi)存、散熱器的選擇等,這里就不擴展了。沒有精力自己組裝臺式機的,可以直接買配備相應顯卡的臺式機,但價格相對自己組裝的臺式機,價格會貴一些。

五、開發(fā)環(huán)境搭建
有條件的,推薦使用Ubuntu系統(tǒng)配置開發(fā)環(huán)境,Ubuntu是Linux的一個發(fā)行版之一,適合新手,界面友好,操作簡單。

由于本人購買的電腦主板,不支持Linux架構的系統(tǒng)安裝,因此后續(xù)會以Windows作為開發(fā)環(huán)境,但這并不影響算法原理與代碼的講解。

本人的臺式機配置情況:

CPU:Intel i7 9700k

顯卡:RTX 2060 Super

系統(tǒng):Windows 10

安裝好Windows系統(tǒng)和必要的驅動后,需要安裝的工具有:CUDA、Anaconda3、cuDNN、Pytorch-gpu、Fluent Terminal(可選)。

1、CUDA
CUDA,是顯卡廠商NVIDIA推出的運算平臺。我們需要根據(jù)自己顯卡的型號選擇支持的CUDA版本,例如RTX 2060 Super支持CUDA 10,下載地址:點擊查看


傻瓜式安裝,很簡單。

安裝好后,需要再配置下系統(tǒng)的環(huán)境變量,電腦->鼠標右鍵->屬性->高級系統(tǒng)設置->環(huán)境變量->Path:

添加自己的NVSMI路徑到環(huán)境變量中,我采用的是默認安裝地址:

配置好后,就可以在cmd中使用nvidia-smi指令查看顯卡了。

2、Anaconda3
Anaconda是Python的包管理器和環(huán)境管理器,可以方便我們安裝Python的第三方庫。

下載地址:點擊查看

選擇Python 3.7的版本,安裝也很簡單,傻瓜式下一步即可。

安裝好后,需要添加系統(tǒng)環(huán)境變量,方法與安裝CUDA時一樣:

D:\Anaconda D:\Anaconda\Scripts

路徑改為自己安裝的Anaconda路徑即可。

配置好后,在cmd中運行conda -V沒有報錯,有版本信息輸出,說明配置成功。

3、cuDNN和Pytorch安裝
cuDNN是用于深度神經(jīng)網(wǎng)絡的GPU加速庫。它強調(diào)性能、易用性和低內(nèi)存開銷。

安裝好Anaconda之后,可以使用conda安裝cuDNN和Pytorch。

打開Anaconda Prompt,這是Anaconda自帶的命令行工具,先一定要用這個工具創(chuàng)建環(huán)境,直接用系統(tǒng)自帶的cmd,可能遇到一些奇怪的問題,例如CondaHTTPError的錯誤。在Anaconda Prompt中輸入:

conda create -n your_name jupyter notebook

這句話的意思是創(chuàng)建一個名字為your_name的虛擬環(huán)境,并且這個虛擬環(huán)境額外安裝jupyter notebook第三方庫。可以將your_name改為你自己喜歡的名字,這個名字是你的虛擬環(huán)境的名字,自己隨便取,比如jack。

隨后,輸入y進行安裝:

安裝好后,可以通過指令conda info -e查看已有環(huán)境情況。

從上圖可以看到,有兩個環(huán)境,一個是base,自帶的基礎環(huán)境,另一個是我們新創(chuàng)建的名為jack的環(huán)境。新建環(huán)境的原因是,我們可以分開管理我們配置的環(huán)境。

安裝好環(huán)境后,我們就可以激活jack環(huán)境,并安裝cuDNN和GPU版的Pytorch了。激活名為jack的環(huán)境:

activate jack


可以看到,我們的環(huán)境由base變成了jack。在jack環(huán)境中安裝cuDNN:

conda install cudnn

安裝cuDNN好后,安裝Pytorch,打開Pytorch官網(wǎng):點擊查看

根據(jù)自己的環(huán)境選擇,選擇好后,網(wǎng)頁會自動給出需要運行的指令。這里可能需要區(qū)分下Python的版本和CUDA的版本。

Python版本查看方法:直接在命令行中輸入python,會看到Python的版本。

CUDA版本查看方法,在命令行中輸入nvidia-smi:

確定好版本后,就可以通過Pytorch官網(wǎng)提供的指令安裝GPU版本的Pytorch了。

至此,基礎的環(huán)境搭建已經(jīng)完成,恭喜。

4、Fluent Terminal
基礎環(huán)境配好了,正常使用已經(jīng)夠了。

但是追求顏值的人,可能會覺得,Windows自帶的命令行工具和Anaconda提供的命令行工具都太丑了。

有沒有好看,又好用的Terminal?答案是有的,不過需要自己配置,并且還有一些坑需要慢慢踩。

例如Fluent Terminal,它是現(xiàn)代的、也是我比較推薦的終端工具。它是專屬于 Windows 平臺,并利用UWP技術打造的顏值超高的終端模擬器。先看下顏值:

總結

以上是生活随笔為你收集整理的Pytorch深度学习实战教程(一):语义分割基础与环境搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。