问题标签 [niftynet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
339 浏览

niftynet - NiftyNet net_segment 没有属性“_logger”

当我尝试执行从 PyPI 安装的 NiftyNet 的快速入门说明时,运行 net_segment 时出现以下错误:

我已经在 Linux Mint 18.3 安装(这个)以及带有 SimpleITK 的 Arch Linux 安装上尝试过这个。

这是从安装了 SimpleITK 的 AUR 安装 NiftyNet 的 Arch Linux 上的相同错误。

通过将 TensorFlow 降级到 1.7 版解决。

0 投票
0 回答
61 浏览

niftynet - 推理时间说明

谁能向我解释为什么当输入数据大于窗口大小时,推理中的第一个窗口与后续窗口相比需要更长的时间?这是我的应用程序的执行时间示例: 在此处输入图像描述

0 投票
1 回答
526 浏览

niftynet - 广义骰子损失:在 keras 中实现时无梯度

我正在尝试在用 Keras(TF 后端)编写的不同 convnet 中 实现NiftyNet中实现的 Generalized Dice Loss 。

但是,当我尝试使用此损失函数训练模型时,会出现以下错误:

ValueError:一个操作没有梯度。请确保您的所有操作都定义了渐变(即可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。

我尝试实现的任何其他损失函数都不会发生这种情况。有人知道如何解决这个问题吗?据我所知,代码中不存在不可微的运算符。

0 投票
1 回答
637 浏览

python - 如何在 NiftyNet 中实现迁移学习?

我想使用 NiftyNet 堆栈执行一些迁移学习,因为我的标记图像数据集相当小。在 TensorFlow 中,这是可能的——我可以加载各种预训练的网络并直接使用它们的层。为了微调网络,我可以冻结中间层的训练,只训练最后一层,或者我可以只使用中间层的输出作为特征向量来输入另一个分类器。

我如何在 NiftyNet 中做到这一点?文档或源代码中唯一提到“迁移学习”是参考模型动物园,但对于我的任务(图像分类),动物园中没有可用的网络。ResNet 架构似乎已经实现并且可以使用,但据我所知,它还没有经过任何训练。此外,似乎我可以训练网络的唯一方法是运行net_classify train,使用配置文件中的各种TRAIN配置选项,这些选项都没有冻结网络的选项。中的各个层niftynet.layer似乎也没有选择是否可以训练它们。

我想我的问题是:

  1. 是否可以通过预训练的 TensorFlow 网络进行移植?
    • 如果我在 NiftyNet 中手动重新创建层架构,有没有办法从预训练的 TF 网络导入权重?
  2. 如何访问模型的中间权重和层?(如何访问 NiftyNet 中预训练模型的中间激活图?指的是模型动物园,可以使用 获得它们net_download,但不能使用任何任意模型)
  3. 顺便说一句,学习率似乎也是一个常数——要随着时间的推移而变化,我是否必须运行网络进行一些迭代,更改lr,然后从最后一个检查点重新开始训练?
0 投票
1 回答
224 浏览

niftynet - 广义骰子损失只学习一类

我正在尝试在 niftynet 中实现的广义骰子损失,以使用 V-Net 分割包含 4 个类别(1 个背景 3 个感兴趣区域)的 MRI 卷。我尝试以两种方式格式化标签:

  • 空间维度只有 0 是背景,1,2,3 是感兴趣区域的标签。

  • 5 维图像 ([3 spatial],1,4) 为第 5 维中的每个类存储二进制卷

第二种情况的推断产生了一个 3D 体积,其中仅检测到带有标签“3”的类,而在第一种情况的训练期间损失根本没有减少。我是否以正确的格式存储标签?

0 投票
1 回答
131 浏览

niftynet - 不知道如何生成采样位置:

统一采样器中的尺寸是如何生成的?我尝试调试图像大小,它似乎适用于某些迭代,但不适用于其他迭代。任何想法如何解决这个问题。我的配置如下:

[风俗]

  • 类数:14

  • 输出概率:真

  • 标签标准化:真

  • 软最大:真

  • min_sampling_ratio: 0

  • 强制标签:(0, 1)

  • rand_samples:0

  • min_numb_labels:1

  • proba_connect:真

  • 评估单位:前景

  • 图像:('图像',)

  • 标签:('标签',)

  • 重量: ()

  • 采样器:()

  • 推断: ()

名称:net_segment

[配置文件]

  • 路径:/home/ubuntu/niftynet/extensions/deepmedic/deepmedic_all_task_renambed_labels.ini

[图片]

  • csv_file:

  • path_to_search: /home/ubuntu/med_deacthalon/Task_all_same_names/imagesTr_1

  • 文件名包含:()

  • filename_not_contains: ('',)

  • interp_order:3

  • 装载机:无

  • pixdim: (1.0, 1.0, 1.0)

  • 轴码:('A','R','S')

  • 空间窗口大小:(51、51、51)

[标签]

-csv_file:

  • path_to_search: /home/ubuntu/med_deacthalon/Task_all_same_names/labelsTr_1

  • 文件名包含:()

  • filename_not_contains: ('',)

  • interp_order:3

  • 装载机:无

  • pixdim: (1.0, 1.0, 1.0)

  • 轴码:('A','R','S')

  • 空间窗口大小:(9、9、9)

[系统]

  • cuda_devices:“”

  • 线程数:2

  • num_gpus:1

  • 模型目录:/home/ubuntu/models_nifty/deepmedic/all_task_same_name_rename_labels

  • dataset_split_file: ./dataset_split.csv

  • 动作:火车

[网络]

  • 名称:深度医学

  • 激活函数:relu

  • 批量大小:32

  • 衰减:0.0

  • reg_type:L2

  • volume_padding_size: (21, 21, 21)

  • volume_padding_mode:最小

  • window_sampling:统一

  • 队列长度:128

  • multimod_foreground_type:和

  • histogram_ref_file: histogram_standardisation_alltask.txt

  • norm_type:百分位数

  • 截止:(0.01,0.99)

  • 前景类型:otsu_plus

  • 标准化:错误

  • 美白:真

  • normalise_foreground_only:真

  • weight_initializer: he_normal

  • 偏差初始化器:零

  • 保持概率:1.0

  • weight_initializer_args:{}

  • 偏差初始化器参数:{}

[训练]

  • 优化师:亚当

  • sample_per_volume: 32

  • 旋转角度:(-10.0,10.0)

  • 旋转角度x:()

  • 旋转角度y:()

  • 旋转角度z:()

  • scaling_percentage: (-10.0, 10.0)

  • 随机翻转轴:-1

  • do_elastic_deformation: 假

  • num_ctrl_points:4

  • 变形西格玛:15

  • 比例变形:0.5

  • LR:0.001

  • loss_type: 骰子

  • 起始迭代器:0

  • save_every_n:45

  • 张量板_每个_n:20

  • 最大迭代器:10

  • 最大检查点:20

  • 验证_每个_n:-1

  • 验证最大迭代器:1

  • exclude_fraction_for_validation:0.0

  • exclude_fraction_for_inference:0.0

[推理]

  • 空间窗口大小:(57、57、57)

  • inference_iter:-1

  • dataset_to_infer:

  • save_seg_dir: ./deepmedic/alltask_newname

  • 输出后缀:_niftynet_out

  • output_interp_order: 0

  • 边界:(36、36、36)

CRITICAL:niftynet: Don't know how to generate sampling locations: Spatial dimensions of the grouped input sources are not consistent. {(477, 451, 187), (391, 369, 147)} Exception in thread Thread-2: Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/image_window_buffer.py", line 148, in _push for output_dict in self(): File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 81, in layer_op self.window.n_samples) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 151, in _spatial_coordinates_generator _infer_spatial_size(img_sizes, win_sizes) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 238, in _infer_spatial_size raise NotImplementedError NotImplementedError

0 投票
1 回答
98 浏览

niftynet - 代码中的默认初始化程序在哪里?

我试过在代码中找到默认的initilizer,但是框架很复杂,所以我决定直接在这里问。我在哪里可以找到默认初始化程序?“ini”文件中是否有任何可配置的参数?

0 投票
2 回答
143 浏览

niftynet - ZeroDivisionError:在 net_segment 推理补丁聚合期间浮点除以零

我运行(在 Google Cloud VM 实例中的 Ubuntu 16.04 上):

unet_2d对于使用softmax 和 (96,96,1) 空间窗口的二元分割问题。这是在我训练我的模型 10 个 epoch 并保存检查点之后。我不确定为什么它会从windows_aggregator_resize.py. 这个问题的原因是什么,我能做些什么来解决它?

以下是一些推理设置和相应的错误:


为了重现错误:

0 投票
1 回答
234 浏览

python-2.7 - 使用 Tensorflow 1.9 导入 NiftyNet 时出错

我在Linux 7.5上安装NiftyNet 0.3.0了该软件包。是先验安装的。当我导入时,我收到以下错误消息。Python 2.7.5CentOSTensorflow 1.9NiftyNet

一个类似的问题被报告为它的 GitHub 存储库的问题,它指出(>=1.8)NiftyNet的最新版本可能不支持。Tensorflow

不幸的是,不允许以Tensorflow非管理员身份在 Linux 服务器中降级到 1.7 版本。任何人都可以提出任何提示来解决这种NiftyNet与 with不兼容的问题Tensorflow 1.9吗?如果可能的话,我愿意修改它在GitHub 存储库中发布的源代码。提前谢谢你的帮助。

0 投票
1 回答
58 浏览

python-3.x - python niftynet非法指令核心转储

我正在尝试 niftynet 网站上的快速启动命令。当我运行 net_download dense_vnet_abdominal_ct_model_zoo 时,我得到非法指令(核心转储)。有人有解决方案吗?谢谢。