我正在尝试用我自己的数据(CT图像及其相应的标签)使用NiftyNet来训练一个网络。我使用类似的样本数据、我可以找到的所有NiftyNet文档以及调整了自己的数据的参数,在其他一些培训之后,我很快设计了Net类。但是我不断地发现这个错误:
"TypeError:init()得到了一个意外的关键字参数'w_initializer'“。
我已经尝试过在我的config.ini,网络类,等等,我能想到的每一个改变,但我无法使它工作,也找不到原因。有人能帮忙纠正这个错误吗?或者分享一些指导原则,从一开始就训练我自己的网络,这样我至少可以尝试从零开始另一种选择,看看我是否找到了出路。
训练指挥部:
! net_segment train -c /home/niftynet/extensions/dense_vnet_TC/config.ini --name dense_vnet_TC.net_TC.MyNetConfig.ini中的一些值:
[NETWORK]
name = dense_vnet
batch_size = 6
volume_padding_size = 0
window_sampling = resize
[TRAINING]
sample_per_volume = 1
lr = 0.001
loss_type = dense_vnet_TC.dice_hinge.dice
starting_iter = 0
save_every_n = 1000
max_iter = 3001
[INFERENCE]
border = (0, 0, 0)
inference_iter = 3000
output_interp_order = 0
spatial_window_size = (512, 512, 40)
save_seg_dir = ./segmentation_output/
############################ Custom configuration
[SEGMENTATION]
image = ct
label = label
label_normalisation = False
output_prob = False
num_classes = 2网络课程基础:
from niftynet.network.base_net import BaseNet
class MyNet(BaseNet):
def __init__(self, num_classes, name='MyNet'):
super(MyNet, self).__init__(num_classes=num_classes, acti_func=acti_func, name=name)
# network specific property
self.hidden_features = 10
def layer_op(self, images, is_training):
# create layer instances
conv_1 = ConvolutionalLayer(self.hidden_features, kernel_size=3, name='conv_input')
conv_2 = ConvolutionalLayer(self.num_classes, kernel_size=1, acti_func=None, name='conv_output')
# apply layer instances
flow = conv_1(images, is_training)
flow = conv_2(flow, is_training)
return flow在按预期完成某些处理之后,输出结束:
追溯(最近一次调用):File “/home/niftynet/bin/net_段”,第10行,在 文件“/sys.exit/niftynet/lib/python3.6/site-sys.exit 第142行,主 "/home/niftynet/lib/python3.6/site-packages/niftynet/engine/application_driver.py",文件app_driver.run(app_driver.app) 第189行,正在运行 文件“/is_training_action=self.is_training_action/niftynet/lib/python3.6/site-is_training_action=self.is_training_action 第258行,create_graph "/home/niftynet/lib/python3.6/site-packages/niftynet/application/segmentation_application.py",文件application.initialise_network() initialise_network中的第280行 acti_func=self.net_param.activation_function) TypeError:init()得到了一个意外的关键字参数'w_initializer‘
发布于 2019-08-07 10:00:21
我认为您需要更改这一行(基于我遇到的类似问题):
super(MyNet, self).__init__(num_classes=num_classes, acti_func=acti_func, name=name)for (只需添加w_regularizer):
super(MyNet, self).__init__(num_classes=num_classes, w_regularizer=w_regularizer, acti_func=acti_func, name=name)如果不尝试在这里添加它:
def __init__(self, num_classes, w_regularizer=w_regularizer, name='MyNet'): 希望能帮上忙。
https://stackoverflow.com/questions/56602919
复制相似问题