nnUNet地址
nnUNet的安裝
安裝python虛擬環境(作者不建議使用conda環境)
sudo apt-get install -y python3-venv
創建虛擬環境檔案夾
選擇要將Python編程環境放入哪個目錄,或者我們可以使用來創建一個新目錄mkdir
mkdir environments
進入檔案夾
cd environments
創建虛擬環境
python3 -m venv project_env
project_env是虛擬環境的名字,建議命為nnunet, 方便記憶
使用時需要激活該環境
source nnunet/bin/activate
激活要先切換到nnunet的上一級檔案夾(也就是environment檔案夾)
要離開環境,只需鍵入命令deactivate
安裝nnUNet
在虛擬環境中鍵入pip install nnunet
pip list查看安裝了哪些包
設定環境變數
這一步對于nnUNet來講很重要,nnU-Net需要知道您打算將原始資料,預處理資料和訓練好的的模型保存在何處
進入檔案bashrc檔案vim ~/.bashrc
按i鍵對檔案進行修改
將以下行放入檔案最后
export nnUNet_raw_data_base="/media/fabian/nnUNet_raw"
export nnUNet_preprocessed="/media/fabian/nnUNet_preprocessed"
export RESULTS_FOLDER="/media/fabian/nnUNet_trained_models"
/media/fabian/改為你自己的地址,下面要有這三個檔案夾
Esc + :+ wq 退出并保存修改之后的檔案
成功設定后,您可以通過鍵入echo $RESULTS_FOLDER etc來驗證路徑設定正確,并且應該列印出正確的檔案夾
注意
安裝nnU-Net將向您的終端添加幾個新命令,這些命令用于運行整個nnU-Net管道,您可以從系統上的任何位置執行它們,
所有nnU-Net命令的前綴都有 nnUNet_ 這樣易于識別,如訓練命令nnUNet_train
請注意,這些命令僅執行python腳本,如果在虛擬環境中安裝了nnU-Net,則在執行命令時必須激活該環境,
所有nnU-Net命令都有一個-h選項,該選項提供有關如何使用它們的資訊
私有資料預處理
nnU-Net的所有資料集都存放在nnUNet_raw/nnUNet_raw_data檔案夾(上面安裝nnU-Net時指定了該檔案夾的地址)
建立Task檔案夾
在nnUNet_raw_data檔案夾下建立Task066_LiverTumer檔案夾(舉例說明,改成你自己的ID和name)
統一命名為(“Task”“ID”_“任務名稱”), “ID”是必須是三位數的整數,066而不是66
在每一個Task檔案夾里,又包含以下檔案
imagesTr: 訓練影像檔案夾,
imagesTs(可選): 測驗影像檔案夾
labelTr: 訓練集標簽檔案夾,
dataset.json : 包含資料集的元資料的JSON檔案, 如任務名字,模態,標簽含義,訓練集包含的影像地址等
影像的處理
影像的統一命名格式case_identifier_XXXX.nii.gz, 標簽的統一命名格式case_identifier.nii.gz
例如mr_001_0000,mr_001_0001 => mr_001
可以寫一個python檔案將自己原本資料集里的資料匯入并重命名為標準格式(必須是從nii壓縮為nii.gz,不能是重命名)
可以在檔案夾用終端打開,用gzip *可將檔案夾內所有不是.gz的檔案壓縮為.gz
要注意每個影像所有的模態必須相同,不能少
json檔案
資料統一格式錄入檔案夾后,生成json檔案,這里可以參考我寫的(需要留言,比較懶)
開跑
資料驗證
驗證通過會自動進行下一步預處理,如果已經驗證過,可以去掉--之后的內容,直接開始預處理
66那里填上自己的ID
nnUNet_plan_and_preprocess -t 66 --verify_dataset_integrity
訓練
nnUNet_train CONFIGURATION TRAINER_CLASS_NAME TASK_NAME_OR_ID FOLD --npz (additional options)
--npz不需要softmax輸出時不要加,會占用大量空間,詳情見github說明
舉例:
nnUNet_train 2d nnUNetTrainerV2 66 4
66 處填寫任務ID
nnUNetTrainerV2 是要用到的使用的model trainer
4 是五折交叉驗證的第幾折(可選0,1,2,3,4)
2D U-Net:
For FOLD in [0, 1, 2, 3, 4], run:
nnUNet_train 2d nnUNetTrainerV2 TaskXXX_MYTASK FOLD --npz
3D full resolution U-Net
For FOLD in [0, 1, 2, 3, 4], run:
nnUNet_train 3d_fullres nnUNetTrainerV2 TaskXXX_MYTASK FOLD --npz
3D U-Net cascade
3D low resolution U-Net
For FOLD in [0, 1, 2, 3, 4], run:
nnUNet_train 3d_lowres nnUNetTrainerV2 TaskXXX_MYTASK FOLD --npz
3D full resolution U-Net
For FOLD in [0, 1, 2, 3, 4], run:
nnUNet_train 3d_cascade_fullres nnUNetTrainerV2CascadeFullRes TaskXXX_MYTASK FOLD --npz
注意:cascade的3D全解析度UNet需要事先完成低解析度UNet的五折
經過培訓的模型將被寫入RESULTS_FOLDER/nnUNet檔案夾,每次訓練都會獲得自動生成的輸出檔案夾名稱:
nnUNet_preprocessed/CONFIGURATION/TaskXXX_MYTASKNAME/TRAINER_CLASS_NAME__PLANS_FILE_NAME/FOLD
預測
nnUNet_predict -i INPUT_FOLDER -o OUTPUT_FOLDER -t TASK_NAME_OR_ID -m CONFIGURATION
INPUT_FOLDER: 測驗資料地址
OUTPUT_FOLDER: 分割資料存放地址
CONFIGURATION: 使用的什么架構,2d or 3d_fullres or 3d_cascade_fullres等
舉例:
nnUNet_predict -i /home/.../nnunet_file/nnUNet_raw/nnUNet_raw_data/Task066_LiverTumer/imagesTs -o /home/.../nnunet_file/output -t 66 -m 2d -f 4
參考:
不用寫代碼神器!教你用4行命令輕松使用nnUNet訓練自己的醫學影像分割模型
nnUNet最舒服的訓練教程(讓我的奶奶也會用nnUNet(上))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/472907.html
標籤:其他
上一篇:第一章:KVM概述
