问题标签 [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.
niftynet - NiftyNet net_segment 没有属性“_logger”
当我尝试执行从 PyPI 安装的 NiftyNet 的快速入门说明时,运行 net_segment 时出现以下错误:
我已经在 Linux Mint 18.3 安装(这个)以及带有 SimpleITK 的 Arch Linux 安装上尝试过这个。
这是从安装了 SimpleITK 的 AUR 安装 NiftyNet 的 Arch Linux 上的相同错误。
通过将 TensorFlow 降级到 1.7 版解决。
niftynet - 推理时间说明
谁能向我解释为什么当输入数据大于窗口大小时,推理中的第一个窗口与后续窗口相比需要更长的时间?这是我的应用程序的执行时间示例: 在此处输入图像描述
niftynet - 广义骰子损失:在 keras 中实现时无梯度
我正在尝试在用 Keras(TF 后端)编写的不同 convnet 中 实现NiftyNet中实现的 Generalized Dice Loss 。
但是,当我尝试使用此损失函数训练模型时,会出现以下错误:
ValueError:一个操作没有梯度。请确保您的所有操作都定义了渐变(即可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。
我尝试实现的任何其他损失函数都不会发生这种情况。有人知道如何解决这个问题吗?据我所知,代码中不存在不可微的运算符。
python - 如何在 NiftyNet 中实现迁移学习?
我想使用 NiftyNet 堆栈执行一些迁移学习,因为我的标记图像数据集相当小。在 TensorFlow 中,这是可能的——我可以加载各种预训练的网络并直接使用它们的层。为了微调网络,我可以冻结中间层的训练,只训练最后一层,或者我可以只使用中间层的输出作为特征向量来输入另一个分类器。
我如何在 NiftyNet 中做到这一点?文档或源代码中唯一提到“迁移学习”是参考模型动物园,但对于我的任务(图像分类),动物园中没有可用的网络。ResNet 架构似乎已经实现并且可以使用,但据我所知,它还没有经过任何训练。此外,似乎我可以训练网络的唯一方法是运行net_classify train
,使用配置文件中的各种TRAIN
配置选项,这些选项都没有冻结网络的选项。中的各个层niftynet.layer
似乎也没有选择是否可以训练它们。
我想我的问题是:
- 是否可以通过预训练的 TensorFlow 网络进行移植?
- 如果我在 NiftyNet 中手动重新创建层架构,有没有办法从预训练的 TF 网络导入权重?
- 如何访问模型的中间权重和层?(如何访问 NiftyNet 中预训练模型的中间激活图?指的是模型动物园,可以使用 获得它们
net_download
,但不能使用任何任意模型) - 顺便说一句,学习率似乎也是一个常数——要随着时间的推移而变化,我是否必须运行网络进行一些迭代,更改
lr
,然后从最后一个检查点重新开始训练?
niftynet - 广义骰子损失只学习一类
我正在尝试在 niftynet 中实现的广义骰子损失,以使用 V-Net 分割包含 4 个类别(1 个背景 3 个感兴趣区域)的 MRI 卷。我尝试以两种方式格式化标签:
空间维度只有 0 是背景,1,2,3 是感兴趣区域的标签。
5 维图像 ([3 spatial],1,4) 为第 5 维中的每个类存储二进制卷
第二种情况的推断产生了一个 3D 体积,其中仅检测到带有标签“3”的类,而在第一种情况的训练期间损失根本没有减少。我是否以正确的格式存储标签?
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
niftynet - 代码中的默认初始化程序在哪里?
我试过在代码中找到默认的initilizer,但是框架很复杂,所以我决定直接在这里问。我在哪里可以找到默认初始化程序?“ini”文件中是否有任何可配置的参数?
niftynet - ZeroDivisionError:在 net_segment 推理补丁聚合期间浮点除以零
我运行(在 Google Cloud VM 实例中的 Ubuntu 16.04 上):
unet_2d
对于使用softmax 和 (96,96,1) 空间窗口的二元分割问题。这是在我训练我的模型 10 个 epoch 并保存检查点之后。我不确定为什么它会从windows_aggregator_resize.py
. 这个问题的原因是什么,我能做些什么来解决它?
以下是一些推理设置和相应的错误:
为了重现错误:
- 将填充
niftynet.network.unet_2d.py
从更改valid
为same
- 数据集 [Task2_Heart]:https ://drive.google.com/drive/folders/1HqEgzS8BV2c7xYNrZdEAnrHk7osJJ--2
- 更新配置: https ://drive.google.com/open?id=1RI111BZLv4Lhf9cGvHo_sAHRt_k5Xt0I
python-2.7 - 使用 Tensorflow 1.9 导入 NiftyNet 时出错
我在Linux 7.5上安装NiftyNet 0.3.0
了该软件包。是先验安装的。当我导入时,我收到以下错误消息。Python 2.7.5
CentOS
Tensorflow 1.9
NiftyNet
一个类似的问题被报告为它的 GitHub 存储库的问题,它指出(>=1.8)NiftyNet
的最新版本可能不支持。Tensorflow
不幸的是,不允许以Tensorflow
非管理员身份在 Linux 服务器中降级到 1.7 版本。任何人都可以提出任何提示来解决这种NiftyNet
与 with不兼容的问题Tensorflow 1.9
吗?如果可能的话,我愿意修改它在GitHub 存储库中发布的源代码。提前谢谢你的帮助。
python-3.x - python niftynet非法指令核心转储
我正在尝试 niftynet 网站上的快速启动命令。当我运行 net_download dense_vnet_abdominal_ct_model_zoo 时,我得到非法指令(核心转储)。有人有解决方案吗?谢谢。