pytorch 測試每一類_2D-UNet腦膠質瘤分割BraTs + Pytorch實現

6f0049ed807f9a092314dadc6e389c96.png

2D-UNet講解

玖零猴:U-Net+與FCN的區別+醫學表現+網絡詳解+創新?zhuanlan.zhihu.com
9a00196b0bb6b69d6494eb86245c1b68.png

BraTs數據準備

數據來源

本文用的訓練集和驗證集均來自BraTs2018的訓練集(其中HGG:210個病人,LGG:75個病人)

但由于BraTs只公開訓練集數據,沒有測試集數據,如果在訓練集中再拆一部分用來作測試集的話,那訓練集便少了許多,訓練數據如果過少,容易出現過擬合現象,即在訓練集中表現好,而在測試集中表現差,此時的網絡泛化能力變差了.為了解決數據少的問題,靈機一動的我想出了一個辦法.

因為BraTs2019的訓練集在BraTs2018的基礎上增多了,其中HGG增加了49例,LGG增加了1例,那么我就把這些新增的作為我的測試集

下面我提供百度云盤給大家下載,這是原始數據

BraTs18數據集下載地址(不包含測試集,提供的驗證集無GT) 
鏈接:https://pan.baidu.com/s/1Ry41OVl9VLOMzhQQR9qXuA 提取碼:qvmo
BraTs19數據集下載地址如下(不包含測試集,提供的驗證集無GT) 
鏈接: https://pan.baidu.com/s/1S5XGTdHkwFnagKS-5vWYBg 提取碼: 2333

數據的預處理以及實現代碼

把上面兩年的數據下下來,然后我對數據的預處理方法是鏈接

完整的實現代碼(jupyter notebook打開)

https://github.com/Merofine/BraTS2Dpreprocessing?github.com
  1. GetTrainingSets.ipynb——>訓練集和驗證集
  2. GetTestingSetsFrom2019.ipynb-—>測試集

代碼執行完后,獲得npy數據

6bf6e30773e2db16ee804e5df6c93e71.png

<如果大家嫌麻煩,我這里提供預處理好的npy數據>

鏈接:https://pan.baidu.com/s/1iIBvqrXIx2JAvoyt3FcuYw  密碼:4qua

訓練集、驗證集和測試集——預處理之區別

它們的預處理除了是否要去除沒有病灶切片外,別無區別

訓練集是去除的,以緩解類別不均衡問題,類別不平衡(class-imbalance)就是指分類任務中不同類別的訓練樣例數目差別很大的情況,但若差別很大,則會對學習過程造成困擾.我們的任務是分割,分割是一種對像素級別的分類,一個切片假如病灶很少甚至沒有,那么就會出現嚴重的類別不均衡,學習的時候網絡就會偏向于多的那一類靠,為了緩解這種情況,應該剔除沒有病灶的切片

而驗證集我也是去除的,因為驗證集其實在訓練過程中扮演了另一角色,雖然并沒有直接參與訓練,可是卻是為了防止過擬合現象,也就是說防止網絡將這些有病灶的切片學得太過頭了,這是個人理解,具體到底是否去除,還得通過實驗證明

測試集當然是不用去除的,因為這個時候就是考驗它的時候到了,讓它自己判斷是否有病灶

運行環境的安裝

windows10 64 bits、nvidia驅動、CUDA8.0、cudnn、anaconda

打開命令窗口, 分別輸入以下指令:conda create -n jiu0Monkey python=3.6conda activate jiu0Monkeypip install simpleitkpip install opencv-python==3.4.2.16pip install scipypip install scikit-learn==0.20pip install scikit-image==0.14conda  install numpy  mkl cffi安裝pytorch,選擇與cuda版本對應的進行安裝,python版本也要對應
下載鏈接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
我選擇的是win-64 pytorch-0.4.0-py36_cuda80_cudnn7he774522_1.tar.bz2
下載完畢后進行安裝,找到下載目錄并執行:
conda install --offline .pytorch-0.4.0-py36_cuda80_cudnn7he774522_1.tar.bz2conda install  torchvision  -c pytorchconda install Pillow=6.1conda install tqdmconda install pandaspip install -U scikit-imagepip install -i https://pypi.tuna.tsinghua.edu.cn/simple numba
pip install hausdorff

代碼下載鏈接

https://github.com/Merofine/UNet2D_BraTs?github.com

訓練:

將train.py的img_paths和mask_paths修改為自己的trainImage和trainMask的路徑

訓練前會通過train_test_split函數將數據集劃分為訓練集和驗證集,只要參數random_state一樣,劃分的結果就是一樣的

每一次epoch訓練結束,都會對驗證集進行測試Iou指標,如果比之前最好的還要好就保存本次訓練模型,如果超過args.early_stop這個參數還沒有訓練更好的話,便結束訓練,這個原理就是early_stop,主要還是防止網絡訓練過度,造成過擬合現象,這也就是驗證集雖然沒有直接參與訓練,但是卻在其中扮演了一個非常重要的角色!

[過擬合]早停法 (Early Stopping)?blog.csdn.net
8874354f4419a8ff8b53e65f7e1058d5.png

如果要訓練Unet,則運行下面指令

python .train.py --arch="Unet" --dataset=“Jiu0Monkey”

其它參數根據自己的情況進行配置

預訓練好的模型下載:

鏈接:https://pan.baidu.com/s/1CBSyOW3n0IOoEIbNdsbOrg  密碼:w7fw

eeb4f919e13a83541c14b7e1ba38f0e2.png

919ef8a186fa84db5e9e33ab2c076217.png

預測:

將test.py的img_paths和mask_paths修改為自己的testImage和testMask的路徑

運行下面指令獲得測試結果以及GT文件:

python .test.py --name="Jiu0Monkey_Unet_woDS" --mode="GetPicture"

e9f4a78f4271dfa83447ccc65a32adea.png
Unet 左邊為GT,右邊為預測

運行下面指令評價測試結果以及GT文件的指標,想了解更多指標的信息包括Dice、Hausdorff、IOU、PPV等,可以參考我這一篇(分割常用評價指標)

玖零猴:分割常用評價指標Dice、Hausdorff_95、IOU、PPV等(打馬)?zhuanlan.zhihu.com
95b15ce02b3732031f5f103860f1edde.png
python .test.py --name="Jiu0Monkey_Unet_woDS" --mode="Calculate"

運行結果:

d419bb05f9292cd7ed268cb14fbcc1cc.png

c5a8b83a81ea679e894cf7d0e23c1ad3.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537488.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537488.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537488.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電商必備6款商品詳情數據采集,一鍵批量下載淘貓拼和1688寶貝信息和鏈接!

當我們分析競品以及選款復制時&#xff0c;往往需要先將商品信息采集下載下來&#xff0c;然而一個個去尋找商品并手動下載&#xff0c;顯然是不現實的。 特別是做無貨源店群的賣家&#xff0c;可能需要在不同平臺采集商品信息&#xff0c;那么就需要用到適用不同平臺的商品采…

合同法摘錄

黑色&#xff1a;原文 紅色&#xff1a;重點 藍色&#xff1a;博主批注 第十條 當事人訂立合同&#xff0c;有書面形式、口頭形式和其他形式 。 &#xff08;口頭形式和其他形式&#xff0c;沒聽過吧&#xff09; 第十一條 書面形式是指合同書、信件和數據電文&#xff0…

vue.js的項目實戰

歡迎大家前往騰訊云社區&#xff0c;獲取更多騰訊海量技術實踐干貨哦~ 本文由蔡述雄發表于云社區專欄 需求背景 組件庫是做UI和前端日常需求中經常用到的&#xff0c;把一個按鈕&#xff0c;導航&#xff0c;列表之類的元素封裝起來&#xff0c;方便日常使用&#xff0c;調用方…

c++ 輸出二進制_Python入門3print格式化輸出的幾種方法

接《Python入門2》print格式化輸出的幾種方法⒂格式化輸出舉例【例】str_name"小明"num_age15print("我叫%s&#xff0c;今年%d歲"%(str_name,num_age))#注意print的前后兩部分用%間隔&#xff0c;不是逗號&#xff0c;后面的輸出列表加小括號【例】str&qu…

著作權法(摘錄)

黑色&#xff1a;原文 紅色&#xff1a;重點 藍色&#xff1a;博主批注 第十二條 改編、翻譯、注釋、整理己有作品而產生的作品&#xff0c;其著性權由改編、翻譯、注釋、整理人享有&#xff0c;但行使著作權時不得侵犯原作品 的著作權。 &#xff08;天下文章一大抄,看你…

判斷瀏覽器是否為IE和版本

var isIE8 false; var isIE9 false; var isIE10 false; isIE8 !!navigator.userAgent.match(/MSIE 8.0/); isIE9 !!navigator.userAgent.match(/MSIE 9.0/); isIE10 !!navigator.userAgent.match(/MSIE 10.0/); //判斷當前瀏覽器版本是否符合&#xff0c;符合為true轉載于…

485串口測試工具軟件下載_串口調試助手詳細講解(結合實操),通訊問題不再是問題...

經常會有學員問我&#xff0c;老師老師&#xff0c;我的plc和變頻器通訊不上了&#xff0c;不知道什么原因&#xff0c;您能幫我看看么。其實吧&#xff0c;這個一般遠程是幫不上你什么的&#xff0c;還是要你自己去測試&#xff0c;找出問題&#xff0c;那么怎么測試呢&#x…

img標簽里的value獲取

簡單描述&#xff1a;在img標簽里的value存放了需要用到的值&#xff0c;但是在js中獲取的時候&#xff0c;我直接寫的就是$("#imgStr").val(),結果發現是空&#xff0c;后來查了一下&#xff0c;才知道&#xff0c;img的value需要使用attr來獲取 代碼&#xff1a; /…

pycharm快捷鍵_春節快結束了回單位途中總結下pycharm快捷鍵

一、編輯(Editing)CtrlSpace 基本的代碼完成(類、方法、屬性)CtrlAltSpace 快速導入任意類 CtrlShiftEnter 語句完成CtrlP 參數信息(在方法中調用參數)CtrlQ 快速查看文檔F1 Web幫助文檔主頁ShiftF1 選中對象的Web幫助文檔Ctrl懸浮/單機鼠標左鍵 簡介/進入代碼定義CtrlZ 撤銷上…

掙值管理名詞(EV、AC、PV等)與公式詳解

概念 PV PLaned&#xff0c;計劃&#xff0c;Value&#xff0c;數值&#xff0c;計劃值&#xff0c;是指項目實施過程中某階段計劃要求完成的工作量所需的預算工時&#xff08;或費用&#xff09;。 是反應計劃&#xff0c;不是反映應消耗的工時或費用。 PVBCWS計劃工作量*…

c++ 三次多項式擬合_線性回歸進階版,多項式線性回歸講解與實現(附完整代碼)...

每天給小編五分鐘&#xff0c;小編用自己的代碼&#xff0c;帶你輕松學習深度學習&#xff01;本文將會帶你做完一個深度學習進階版的線性回歸---多項式線性回歸&#xff0c;帶你進一步掌握線性回歸這一深度學習經典模型&#xff0c;然后在此基礎上&#xff0c;小編將在下篇文章…

新北洋,知識型員工的科學管理

2009年8月中旬&#xff0c;新北洋作為國內唯一通過自主創新掌握專用打印機核心設計、制造技術的企業隆重亮相第十六屆國際自動識別技術展覽會&#xff08;SCAN CHINA2009&#xff09;得到參觀嘉賓的高度評價。引領其強大科研實力及生產力的是其對知識型員工的科學高效管理。 新…

mysql查看表占用空間大小

select TABLE_NAME,DATA_LENGTHINDEX_LENGTH,TABLE_ROWS from INFORMATION_SCHEMA.tables where TABLE_SCHEMAnbly_twjr DATA_LENGTHINDEX_LENGTH 的值除以1024&#xff0c;再除以1024&#xff0c;折算成MB

mfc文字閃爍如何解決_男同胞福音!如何解決尿尿時最尷尬的難題?建議偷偷收藏(文字版)...

上面這個現象呢&#xff0c;是男生上廁所時的一種微妙狀態。兩個男生往往會由于尷尬而不愿意站在相鄰的坑位上廁所。我將其命名為男廁所的泡利不相容定律。一、男廁尷尬定律簡介先給大家科普一下男廁所的構造&#xff0c;小便區是一排立式坑位。好的廁所有隔板&#xff0c;阻擋…

docker-compose 運行 Flask 應用最佳實踐

背景 以前部署應用&#xff0c;需要各種環境配置&#xff0c;各種shell操作才能搭建一套可用的服務。現在有了Docker之后&#xff0c;部署方式變了更加容易&#xff0c;不容易出現配置錯誤&#xff0c;環境不一致問題。解決了在本地環境可以運行&#xff0c;遷移到線上出現各種…

一次性搞懂JavaScript正則表達式之語法

本文是『horseshoeRegex專題』系列文章之一&#xff0c;后續會有更多專題推出GitHub地址&#xff1a;https://github.com/veedrin/horseshoe博客地址(文章排版真的很漂亮)&#xff1a;https://veedrin.com如果覺得對你有幫助&#xff0c;歡迎來GitHub點Star或者來我的博客親口告…

dbeaver導出表結構和數據_mall數據庫表結構概覽

mall是一套電商系統&#xff0c;后臺系統主要包括商品管理、訂單管理、營銷管理(運營管理促銷管理)、內容管理、用戶管理等模塊&#xff0c;本文主要對這些模塊的數據庫表結構及功能做大概的介紹。商品管理數據庫表結構功能結構訂單管理數據庫表結構功能結構營銷管理數據庫表結…

成為項目經理需要具備什么條件?

優秀的項目經理不問出生&#xff0c;項目經理沒有硬性條件&#xff0c;個人意愿是關鍵&#xff0c;愿意堅持做下去&#xff0c;不停學習項目管理知識&#xff0c;從0到1&#xff0c;從廣到深&#xff0c;平時刻意練習&#xff0c;不怕出錯。

arima模型 p q d 確定_自回歸移動平均模型(ARMA)

自回歸模型&#xff08;AR&#xff09;&#xff1a;①描述當前值和歷史值之間的關系&#xff0c;用變量自身的歷史時間數據對自身進行預測。②自回歸模型必須滿足平穩性的要求。③移動平均模型&#xff08;MA&#xff09;關注的是自回歸模型中的誤差項的累加。移動平均法能有效…