zoukankan      html  css  js  c++  java
  • NiftyNet开源平台的使用 配置文件

    NiftyNet开源平台的使用 
     
    NiftyNet基础架构是使研究人员能够快速开发和分发用于分割、回归、图像生成和表示学习应用程序,或将平台扩展到新的应用程序的深度学习解决方案。
     
     
    NiftyNet工作流可以由NiftyNet应用程序和配置文件完全指定。 
    运行工作流的命令是: 
    python net_run.py [train|inference|evaluation] -c <path_to/config.ini> -a <application>

    使用train指令表明想要使用提供的数据更新已存在的网络模型,使用inference将加载已存在的网络模型根据提供的数据生成响应。-c 后跟配置文件路径,-a 跟将要import的应用种类。 
     
    application参数 
     图像分割  
    net_segment -c ...

    图像回归 
    net_regress -c ...

    自动编码 
    net_autoencoder -c ...

    生成对抗网络(GANs) 
    net_gan -c ...

    net_run命令也支持命令行参数,以`--<name> <value>`或`--<name>=<value>`的形式表示。输入的参数将取代系统默认的和配置文件中的参数。
      
    配置文件 
    每个网络想要运行必须包含一个config.ini配置文件,用来设置训练/测试所用的全部参数,详细如下: 
    每个配置文件中必须包含三个sections: 
    * [SYSTEM] 
    * [NETWORK] 
    * [APPLICATION] 
    如果train行为被需要,则`[TRAINING]`section需要被定义,同样,如果inference行为被需要,则需要定义`[INFERENCE]`。 
    [APPLICATION]由自己定制,可以使用的有: 
    * `[GAN]` -- 生成对抗网络 
    * `[SEGMENTATION]` -- 分割网络 
    * `[REGRESSION]` -- 回归网络 
    * `[AUTOENCODER]` -- 自动编码网络 

    每个section的参数  
    [Input data source]
    * csv_file:  输入图像路径 
    * path_to_search: 搜索图像的单个或多个文件,如果有多个用逗号分开 
    * filename_contains:  匹配文件名的关键词 
    * filename_not_contains:  排除文件名的关键词 
    * filename_removefromid:  从文件命中抽取主题id的正则表达式,被匹配的模式将从文件名中移除并生成主题id。 
    * interp_order:  插值法,当设定采样方法为resize时,需要该参数对图片进行上采样或下采样,0表示最近插值,1表示双线性插值,3表示三次样条插值,默认为3 
    * pixdim:  如果被指定,输入volum在被喂给网络之前将被重采样成voxel尺寸 
    * axcodes:  如果被指定,输入volum在被喂给网络之前将被调整为坐标码(axes code) 
    * spatial_window_size:  输入到网络中的图片尺寸,需指明三个维度,第一个和第二个分别表示图片的长和宽,第三个如果为1表示使用2d卷积,否则使用3d卷积 
    * loader:  图片读取器,默认值None将尝试所有可得到的读取器 
      读取器支持的类型有: 
      nibabel  支持.nii医学文件格式 
      simpleitk  支持.dcm和.mhd格式的医疗图像 
      opencv  支持.jpg等常见图像,读取后通道顺序为BGR 
      skimage  支持.jpg等常见图像 
      pillow  支持.jpg等常见图像,读取后通道顺序为RGB 
     
    [System]
    * cuda_devices:  设置tensorflow的CUDA_VISIBLE_DEVICES变量 
    * num_threads:  设置训练的预处理线程数 
    * num_gpus:  设置训练的GPU的数量 
    * model_dir:  训练模型的保存和加载路径 
    * dataset_split_file:  文件分配科目到子集 
    * event_handler:  事件处理器 
     
    [NETWORK]
    * name:  niftynet/network中的网络类或用户自定义的模块 
    * activation_function:  网络的激活函数集合 
    * batch_size:  设置每次迭代图像窗口的数量 
    * smaller_final_batch_mode:  当batch_size的窗口采样器总数是不可见的时支持最后的batch使用不同的模式 
      可选类型有: 
      drop:  终止剩余的batch 
      pad: 用-1填补最后更小的batch 
      dynamic: 直接输出剩余的batch 
    * reg_type:  可训练的正规化参数的类型 
    * decay:  正规化的强度,用于预防过拟合 
    * volume_padding_size:  图片的填补值 
    * window_sampling:  进入网络的图片的采样方法 
      uniform:  输出的图片保持原本大小 
      weighted:  对成比例的voxel的采样到累积直方图的似然 
      balanced:  每个标签都被采样的可能性同样 
      resize:  将进入网络的图片首先resize到spatial_window_size 
    * queue_length:  NiftyNet会设置两个队列,一个负责从数据集中读取数据并扰乱,另一个从前一个队列中读取batch_size张图片输入网络,这个参数是指第一个队列的长度,最小值为batch_size \* 2.5 
    * keep_prob: 如果失活被网络支持的话,每个元素存活的可能性
     
    [Volume-normalisation]
    * normalisation:  指示直方图标准化是否应该被应用于数据 
    * whitening:  只是被加载的图片是否应该被增白,如果是,输入I,返回(I - mean(I)) / std(I) 
    * histogram_ref_file:  标准化参数的文件 
    * norm_file:  基于直方图的标准化的直方图landmark类型 
    * cutoff:  下级和上级的基于直方图的标准化的截断 
    * normalise_foreground_only:  指示一个mask是否需要被基于前景或多样前景进行计算,如设置True,所有的标准化步骤都将被应用于生成前景区 
    * foreground_type:  生成一个前景mask,并且它只用于前景 
    * mutimod_foreground_type:  结合前景mask和多模态的策略 
      可选类型: 
      or:  可得到的masks的合集 
      and:  可得到的mask的交集 
      all:  mask从每个模态独立计算 
     
    [TRAINING]
    * optimiser:  计算图梯度优化器的类型,支持adagrade,adam,gradientdescent,momentum,rmsprop,nesterov 
    * sample_per_volume:每张图的采样次数 
    * lr:  学习率 
    * loss_type:  loss函数的类型,支持segmentation,regression,autoencoder,gan 
    * starting_iter:  设置重新训练模型的迭代次数 
    * save_every_n:  保存当前模型的频率,0为不保存 
    * tensorboard_every_n:  计算图中的元素和写到tensorboard上的频率 
    * max_iter:  最大训练迭代次数 
     
    [Validation during training]
    * validation_every_n:  每n次迭代运行一次验证迭代 
    * validation_max_iter:  验证迭代运行的次数 
    * exclude_fraction_for_validation:  用于验证的数据集的比例 
    * exclude_fraction_for_inference:  用于推断的数据集的比例 
     
    [Data augmentation during traning] 
    * rotation_angle:  指示输入的图片旋转一个随机的旋转 
    * scaling_percentage:  指示一个随机的缩放比例(-50,50) 
    * random_flipping_axes:  可以翻转增强数据的轴(???) 

    [INFERENCE]
    * spatial_window_size:  指示输入窗口的大小(int array) 
    * border:  一个用于修剪输出窗口大小的边界值(int tuple),如设置(3,3,3),将把一个(64\*64\*64)的窗口修剪为(58\*58\*58) 
    * inference_iter:  指定已训练的模型用于推测(integer) 
    * save_seg_dir:  预测目录的名字 
    * output_postfix:  向每一个输出文件的名称后添加后缀 
    * output_interp_order:  网络输出的推断顺序 
    * dataset_to_infer:  字符串指定计算推理的数据集(‘training’, ‘validation’, ‘inference’) 
     
    [EVALUATION]  
    * save_csv_dir:  存储输出的csv文件的路径 
    * evaluations:  要计算的评价指标列表以逗号分隔的字符串表示,每个应用程序可能的评估指标列表可用于回归评估、分段评估和分类评估 
    * evaluation_units:  描述在分割的情况下应该如何进行评估 
      foreground:  只对一个标签 
      label:  对每一个标签度量 
      cc:  对每个连接组件度量 
     
  • 相关阅读:
    动态规划算法-3
    动态规划算法-2
    动态规划算法-1
    滑动窗口算法-3
    央行副行长提示金融风险:地方偿债高峰期到来
    银行卡换“芯” 更要银行换心
    破解IT运维成本困境,专业化分工是妙方
    php连接mysql
    ajax原生验证用户名是否存在
    ajax跨域问题
  • 原文地址:https://www.cnblogs.com/zhhfan/p/9806900.html
Copyright © 2011-2022 走看看