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:  对每个连接组件度量 
 

NiftyNet开源平台的使用 -- 配置文件的更多相关文章

  1. NiftyNet开源平台使用

    NiftyNet是一款开源的卷积神经网络平台,专门针对医学图像处理分析,上一篇博客已经详细介绍了这个平台,接下来让我简单介绍一下目前我了解到的使用方法.更详细的使用方法.以及配置过程请查看NiftyN ...

  2. Flink 另外一个分布式流式和批量数据处理的开源平台

    Apache Flink是一个分布式流式和批量数据处理的开源平台. Flink的核心是一个流式数据流动引擎,它为数据流上面的分布式计算提供数据分发.通讯.容错.Flink包括几个使用 Flink引擎创 ...

  3. Minikube之Win10单机部署Kubernetes(k8s)自动化容器操作的开源平台

    Minikube之Win10单机部署 Kubernetes(k8s)是自动化容器操作的开源平台,基于这个平台,你可以进行容器部署,资源调度和集群扩容等操作.如果你曾经用过Docker部署容器,那么可以 ...

  4. Nagios监控平台搭建及配置文件详解

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员, ...

  5. 超级强大的淘宝开源平台(taobao-code)

    今天发现了一个免费又高级的开源SVN服务器,taobao,阿里云CODE.迫不及待的注册了一个.感觉不错,分享给大家. 先说说我们用过的几个SVN服务器吧: google code oksvn(感觉不 ...

  6. (转)GIS理论知识(三)之ArcGIS平台、SuperMap超图平台和开源平台

    3.1.ArcGIS平台 ArcGIS为美国ESRI公司研发的产品,为用户提供一个可伸缩的,全面的GIS平台.ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的 ...

  7. 全球首发—鸿蒙开源平台OpenGL

    目录: 前言 背景 鸿蒙OpenGL-ISRC的结构 OpenGL-ISRC和鸿蒙SDK OpenGL的区别 OpenGL-ISRC的使用 前言 基于安卓平台的OpenGL(androidxref.c ...

  8. Aooms_微服务基础开发平台实战_003_配置文件与简单的web环境搭建

    一.前言 本篇文章介绍两个重点 (1) 工程核心配置文件application.yml (2) 如何在一个标准的的SpringCloud工程上构建起一个基本的web结构 二.配置文件applicati ...

  9. 机器学习的开源平台 TensorFlow

    一. google第二代人工智能机器学习开源工具. http://www.tensorfly.cn/ 二. 知乎上关于机器学习的资料问答 https://www.zhihu.com/question/ ...

随机推荐

  1. angular 实现 echarts 拖动区域进行放大 方法

    实现逻辑: 1.通过鼠标摁下事件  和弹出事件  获取x轴的index  之后去x轴的list中去获取两个坐标点 2.之后将这两个数据作为参数  传到后台更新数据 3.记录下来这两个坐标点 放到lis ...

  2. USB设备类学习笔记

    usb audio class 版本目前有3个版本  分别是1.0,2.0,3.0:1.0针对各个厂家的设备具有不同的描述符,而2.0则将它们统一简化,3.0则是最新的,还没有与2.0作进一步比较:因 ...

  3. 关于PHP读取HTTP头的部分

    本文转载自https://my.oschina.net/luoczi/blog/86608 1.关于PHP读取HTTP头的方法 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 ...

  4. Fiddler-设置取消自动更新

    fiddler 启动时老弹出要更新,但不想更新,可以这样设置 Tools-Optons->General 把第一个√去掉

  5. Unity3D中默认函数的执行顺序

    直接用一张图来说明各个默认函数的执行顺序: FixedUpdate以固定的物理时间间隔被调用,不受游戏帧率影响.一个游戏帧可能会调用多次FixedUpdate.比如处理Rigidbody的时候最好用F ...

  6. c语言小程序以及java生成注释文档方法

    c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...

  7. [转]MYSQL性能查看(命中率,慢查询)

    网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一 ...

  8. 服务器windows2008系统登录报错:由于远程桌面服务当前正忙,因此无法完成您尝试的任务。请在...

    1.问题描述:windows server 2008服务器通过远程桌面登录时很慢,登录不进去,把远程桌面关掉后,再用远程桌面登录时,出现下图提示. 把服务器接上显示器键盘鼠标后,卡在系统登录的欢迎界面 ...

  9. java0618

    1. java的基本数据类型,各占多少字节? byte 8位 short 16位 int 32位 long 64位 float 32位 double 64位 boolean 1位 char 16位 2 ...

  10. [转]Understand QoS at OpenSwitch

    danny http://dannykim.me/danny/57771 2014.02.11 14:34:58 (*.193.128.184) 592 >>> Purpose Th ...