Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

Error messages should be more informative #274

Open
fepegar opened this issue Oct 31, 2018 · 0 comments
Open

Error messages should be more informative #274

fepegar opened this issue Oct 31, 2018 · 0 comments

Comments

@fepegar
Copy link
Collaborator

fepegar commented Oct 31, 2018

It has always been hard for me to find the line containing information about the errors in NiftyNet output. Oftentimes I find the line that seems to give trouble, but it's not clear to me what I need to do to solve it.

I think this is a recurrent issue for other users as well:

#273
Error:

InvalidArgumentError (see above for traceback): Provided indices are out-of-bounds w.r.t. dense side with broadcasted shape`

Solution:

change histogram_ref_file

#260
Error:

ResourceExhaustedError (see above for traceback): OOM when allocating tensor of shape [] and type float

Solution:

try reducing the batch size and making sure that the memory on your NVIDIA GPU is cleared before running NiftyNet using nvidia-smi

#170
Error:

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:

Solution:

the corresponding image and labels have different voxel spacing values stored in header

Error:

NiftyNet ValueError: Dimension -1 must be >= 0

Solution:

Set num_classes = 2.

I'm just posting just the main error line, but for example the traceback for that last error was very verbose:

Traceback (most recent call last):
  File "/Users/fernando/anaconda/envs/nn/bin/net_segment", line 11, in <module>
    sys.exit(main())
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/__init__.py", line 115, in main
    app_driver.run_application()
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/engine/application_driver.py", line 241, in run_application
    self.graph = self._create_graph(self.graph)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/engine/application_driver.py", line 309, in _create_graph
    self.gradients_collector)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/application/segmentation_application.py", line 266, in connect_data_and_network
    net_out = self.net(image, is_training=self.is_training)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 34, in __call__
    return self._op(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 455, in __call__
    result = self._call_func(args, kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 406, in _call_func
    result = self._func(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/network/vnet.py", line 121, in layer_op
    name='R1')(concat_r1, up_1)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 34, in __call__
    return self._op(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 455, in __call__
    result = self._call_func(args, kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 406, in _call_func
    result = self._func(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/network/vnet.py", line 186, in layer_op
    kernel_size=1, with_bias=True)(res_flow)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 34, in __call__
    return self._op(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 455, in __call__
    result = self._call_func(args, kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 406, in _call_func
    result = self._func(*args, **kwargs)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/convolution.py", line 83, in layer_op
    regularizer=self.regularizers['w'])
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 1297, in get_variable
    constraint=constraint)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 1093, in get_variable
    constraint=constraint)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 439, in get_variable
    constraint=constraint)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 408, in _true_getter
    use_resource=use_resource, constraint=constraint)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 735, in _get_single_variable
    shape = tensor_shape.as_shape(shape)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 860, in as_shape
    return TensorShape(shape)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 458, in __init__
    self._dims = [as_dimension(d) for d in dims_iter]
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 458, in <listcomp>
    self._dims = [as_dimension(d) for d in dims_iter]
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 399, in as_dimension
    return Dimension(value)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/framework/tensor_shape.py", line 39, in __init__
    raise ValueError("Dimension %d must be >= 0" % self._value)
ValueError: Dimension -1 must be >= 0

originally defined at:
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/convolution.py", line 50, in __init__
    super(ConvLayer, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 58, in __init__
    super(TrainableLayer, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 26, in __init__
    self._op = tf.make_template(name, self.layer_op, create_scope_now_=True)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 153, in make_template
    **kwargs)


originally defined at:
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/network/vnet.py", line 141, in __init__
    super(VNetBlock, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 58, in __init__
    super(TrainableLayer, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 26, in __init__
    self._op = tf.make_template(name, self.layer_op, create_scope_now_=True)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 153, in make_template
    **kwargs)


originally defined at:
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/engine/application_driver.py", line 295, in _create_graph
    self.app.initialise_network()
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/application/segmentation_application.py", line 235, in initialise_network
    acti_func=self.net_param.activation_function)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/network/vnet.py", line 39, in __init__
    name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/network/base_net.py", line 21, in __init__
    super(BaseNet, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 58, in __init__
    super(TrainableLayer, self).__init__(name=name)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/niftynet/layer/base_layer.py", line 26, in __init__
    self._op = tf.make_template(name, self.layer_op, create_scope_now_=True)
  File "/Users/fernando/anaconda/envs/nn/lib/python3.6/site-packages/tensorflow/python/ops/template.py", line 153, in make_template
    **kwargs)

I think Keras does a good job handling this: https://blog.keras.io/user-experience-design-for-apis.html

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
NiftyNet Hackathon Preparation
  
Enhancements From Issues
Development

No branches or pull requests

2 participants