【nnunet】Experiencia de entrenamiento de datos personales

Instalar:

pip install nnunetv2
## 或者是把他下载下来,自行安装
git clone https://github.com/MIC-DKFZ/nnUNet.git
cd nnUNet
pip install -e .

Código de GitHub:

GitHub - MIC-DKFZ/nnUNet

Diez conjuntos de datos de segmentación médica:

Segmentación Médica Decathlon

Nota: No debes usar magia al instalar, de lo contrario será Voldemort (Falso)

Configuración:

Aquí hay algunos jugos de hierro, puede referirse a ellos juntos, tomar el de ellos como principal, el mío como suplemento y comer juntos

(Cuatro: 2020.07.28) El tutorial de capacitación más cómodo de nnUNet (deje que mi abuela también use nnUNet (Parte 1)) (Actualizado el 21.04.20)

nnUNet combat one utiliza el modelo nnUNet previamente entrenado para razonar - Sister Tina's Blog - CSDN Blog

Guía incompleta de nnUNet (Parte 1) - Sin sitio web de visitantes (Aquí está el código json generado personalizado)

Permítanme citar:

from collections import OrderedDict
from batchgenerators.utilities.file_and_folder_operations import save_json
   
   
def main():
    foldername = "Task128_LungLobe"
    numTraining = 80
    numTest = 6
    numClass = 6
    json_dict = OrderedDict()
    json_dict['name'] = foldername
    json_dict['description'] = foldername
    json_dict['tensorImageSize'] = "4D"
    json_dict['reference'] = "see challenge website"
    json_dict['licence'] = "see challenge website"
    json_dict['release'] = "0.0"
    json_dict['modality'] = {
        "0": "CT",
    }
    json_dict['labels'] = {i: str(i) for i in range(numClass)}
   
    json_dict['numTraining'] = numTraining
    json_dict['numTest'] = numTest
    json_dict['training'] = [{'image': "./imagesTr/LungLobe_{:0>3d}.nii.gz".format(i),
                              "label": "./labelsTr/LungLobe_{:0>3d}.nii.gz".format(i)}
                             for i in range(numTraining)]
   
    json_dict['test'] = ["./imagesTs/LungLobe_{:0>3d}.nii.gz".format(i)
                         for i in range(numTraining, numTraining+numTest)]
   
    save_json(json_dict, "./dataset.json")
   
   
if __name__ == "__main__":
    main()
   

¡Tutorial de nivel de niñera de nnUNet! Desde la configuración del entorno hasta el entrenamiento y el razonamiento (una visita obligada para los principiantes) | Agregación de tecnología de IA

Instale nnUnet en Windows, cree un conjunto de datos y ejecútelo (un tutorial que la abuela de al lado también puede aprender)_PeanutMi生花@'s Blog-CSDN Blog

Carpeta de datos:

De hecho, debe crear manualmente varias carpetas usted mismo.

 Entra en la carpeta roja:

En la carpeta roja, colóquelo como la carpeta de datos Task14_Vessel, que es un formulario de nombre fijo Task number_name

Para números, se recomienda tener más de 10, pero no tres dígitos. Si tiene 13, no use 013. Si el formato de datos en sus datos es correcto, es decir, si los datos de entrenamiento van seguidos de _0000, sufijo nii.gz, puede ignorar esta regla y saltar directamente a --entonces

Porque mis datos son así

 No debe ajustarse al formato, por lo que debe cambiarse. Puede usar el código que viene con nnunet para realizar cambios:

nnUNet_convert_decathlon_task -i F:/data/data_1100/nnUNet_raw_data_base/nnUNet_raw/nnUNet_raw_dat
a/Task14_Vessel

En este momento, generará una carpeta nuevamente, esta carpeta se llama Task014_Vessel, la original se llama Task14_Vessel, ¡así que debes entender! ! !

Encontrarás errores  durante este proceso , si tu entorno es Windows, la solución es la siguiente:

Errores encontrados por nnUNet windows_nnunet windows_*Xiaodai's Blog-CSDN Blog

Lo más importante es que la imagen y la etiqueta tengan el mismo nombre

 

Entonces

Ejecute el comando, el número es el nombre en clave de su propia tarea:

nnUNet_plan_and_preprocess -t 14 --verify_dataset_integrity
## 或者是
nnUNet_plan_and_preprocess -t 14 

Luego encontré un informe de error , que generalmente se informa en este paso:

 Archivo "D: \ Python \ anaconda3 \ envs \ pytorch \ lib \ sitio-packages \ nnunet \ preprocessing \ sanity_checks.py", línea 129, en verify_dataSet_inteGricity afirmar isfile (esperado_label_file), "no podría encontrar el archivo de etiqueta para el caso s. 1. Archivo
    esperado
:

Todos los problemas anteriores ocurrieron bajo Windows.Para Linux, lo pasé una vez.

Solución: instale la versión de Windows de nnunet, resolverá el problema del subproceso en Windows y no informará tantos problemas extraños

Finalmente, ejecute el comando para el entrenamiento :

nnUNet_train 3d_fullres nnUNetTrainerV2 13 0-4

nnUNetTrainerV2: El representante es el modelo entrenado,

13: Conjunto de datos de tareas

0-4: 10 % de descuento 50 % de descuento

Si el entrenamiento está a la mitad y quieres continuar entrenando, entonces

nnUNet_train 3d_fullres nnUNetTrainerV2 13 0-4 -c

-c: el significado de continuar

Por defecto, nnunet guarda cada 50 épocas

Entrena por un total de 1000 épocas

 

#########################################################################

Resumen de comandos

#########################################################################

nnUNet_convert_decathlon_task -i F:/data/data_1100/nnUNet_raw_data_base/nnUNet_raw/nnUNet_raw_dat
a/Task14_Vessel

nnUNet_plan_and_preprocess -t 14 

nnUNet_train 3d_fullres nnUNetTrainerV2 13 0

ubicación del archivo 

 nnUNet_convert_decathlon_task:

\nnunet\experiment_planning\ nnUNet_convert_decathlon_task

nnUNet_plan_and_preprocess:

\nnunet\experiment_planning\ nnUNet_plan_and_preprocess

nnUNet_tren:

\nnunet\run\run_training

################################################################################################################## ##############################

Algunas notas de código fuente para entrenamiento

Si usa nnUNet_train 3d_fullres nnUNetTrainerV2, observe principalmente estos cinco códigos de archivo:

 run_training.py:

Ubicación: \nnunet\run\run_training

Función:

El proceso principal está aquí.

 nnUNetTrainerV2.py:

Ubicación: \nnunet\training\network_training\nnUNetTrainerV2

Función:

1. Defina el modelo de red entrenado e inicialice la red

2. Cargar y descomprimir conjuntos de datos , mejora de datos

3. Definir funciones de pérdida, optimizadores, tasas de aprendizaje, etc.

4. Definición de parámetros de carga de datos

5. La entrada del entrenamiento, (en el último párrafo del código)

nnUNetTrainer.py:

Ubicación: \nnunet\training\nnUNetTrainer.py

Función:

1. Definición de algunos parámetros de datos cargados, asignados a sí mismo como un todo

2. Aquí puede cambiar el tamaño del lote y patch_size usted mismo

Por lo general, el lote predeterminado es 2 y patch_size es [90,190,190]

self.batch_size 和 self.patch_size

3. Divida el conjunto de entrenamiento y el conjunto de validación

4. Cargue el conjunto de datos

entrenador_de_red.py:

Ubicación:

Ubicación: \nnunet\training\network_trainer.py

Función:

1. Establecer algunos parámetros

self.num_batches_per_epoch = 250 ## bloques de entrenamiento

self.num_val_batches_per_epoch = 50 ## bloques de prueba

self.save_every = 50 ## Guardar cada número de épocas

2. Peso de la carga

3. Guarde el archivo de registro de depuración en la carpeta de salida

4. Durante el entrenamiento : época < max_num_epochs: aquí

generic_UNet.py:

Ubicación: \nnunet\network_architecture\generic_UNet.py

Función:

modelo de estructura de red

Supongo que te gusta

Origin blog.csdn.net/qq_42792802/article/details/129902881
Recomendado
Clasificación