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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pytorch 测试每一类_2D-UNet脑胶质瘤分割BraTs + Pytorch实现

發布時間:2025/3/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pytorch 测试每一类_2D-UNet脑胶质瘤分割BraTs + Pytorch实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2D-UNet講解

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

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
  • GetTrainingSets.ipynb——>訓練集和驗證集
  • GetTestingSetsFrom2019.ipynb-—>測試集
  • 代碼執行完后,獲得npy數據

    <如果大家嫌麻煩,我這里提供預處理好的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

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

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

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

    預訓練好的模型下載:

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

    預測:

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

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

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

    Unet 左邊為GT,右邊為預測

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

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

    運行結果:

    總結

    以上是生活随笔為你收集整理的pytorch 测试每一类_2D-UNet脑胶质瘤分割BraTs + Pytorch实现的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。