NifTK / NiftyNet

[unmaintained] An open-source convolutional neural networks platform for research in medical image analysis and image-guided therapy
http://niftynet.io
Apache License 2.0
1.36k stars 403 forks source link

2-th value returned by pyfunc_0 is float, but expects int32 in NiftyNet Segmentation #351

Open yinghweynai opened 5 years ago

yinghweynai commented 5 years ago

Hi, I am new to python and could not figure out the below error. I am running NiftyNet segmentation application on python 3.6.8 via Anaconda without GPU (Error message below). Could you advise me? Thank you.

Traceback (most recent call last): File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\mednyh\AppData\Local\Continuum\anaconda3\Scripts\net_run.exe__main.py", line 9, in File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\init__.py", line 142, in main app_driver.run(app_driver.app) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 205, in run loop_status=loop_status) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 331, in loop ApplicationDriver.loop_step(application, iter_msg)

File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 363, in loop_step feed_dict=iteration_message.data_feed_dict) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 929, in run run_metadata_ptr) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1152, in _run feed_dict_tensor, options, run_metadata) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1328, in _do_run run_metadata) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1348, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: 2-th value returned by pyfunc_0 is float, but expects int32 [[{{node PyFunc}} = PyFuncTin=[DT_INT64], Tout=[DT_INT32, DT_INT32, DT_INT32, DT_INT32], token="pyfunc_0", _device="/device:CPU:0"]] [[node worker_0/train/IteratorGetNext (defined at c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\image_window_dataset.py:201) = IteratorGetNextoutput_shapes=[[2,64,64,8,1,1], [2,7], [2,64,64,8,1,1], [2,7]], output_types=[DT_INT32, DT_INT32, DT_INT32, DT_INT32], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

yinghweynai commented 5 years ago

I resolved the above by setting interp_order to 0 or 1 as mentioned here: https://github.com/NifTK/NiftyNet/issues/312. However, I would prefer to keep the image as original. Is there an alternative to this?

I also encounter problems in convolution using both toynet and highres3dnet: During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\mednyh\AppData\Local\Continuum\anaconda3\Scripts\net_run.exe__main.py", line 9, in File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\init__.py", line 142, in main app_driver.run(app_driver.app) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 205, in run loop_status=loop_status) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 331, in loop ApplicationDriver.loop_step(application, iter_msg) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 363, in loop_step feed_dict=iteration_message.data_feed_dict) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 929, in run run_metadata_ptr) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1152, in _run feed_dict_tensor, options, run_metadata) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1328, in _do_run run_metadata) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1348, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: input and filter must have the same depth [[node worker_0/ToyNet/conv_input_bnrelu/conv/conv (defined at c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\convolution.py:90) = Conv3D[T=DT_FLOAT, _class=["loc:@worke...opFilterV2"], data_format="NDHWC", dilations=[1, 1, 1, 1, 1], padding="SAME", strides=[1, 1, 1, 1, 1], _device="/job:localhost/replica:0/task:0/device:CPU:0"](worker_0/train/Squeeze, ToyNet/conv_input_bnrelu/conv/w/read)]]

Caused by op 'worker_0/ToyNet/conv_input_bnrelu/conv/conv', defined at: File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\mednyh\AppData\Local\Continuum\anaconda3\Scripts\net_run.exe__main.py", line 9, in sys.exit(main()) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet__init.py", line 142, in main app_driver.run(app_driver.app) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 189, in run is_training_action=self.is_training_action) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\engine\application_driver.py", line 270, in create_graph outputs_collector, gradients_collector) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\application\segmentation_application.py", line 302, in connect_data_and_network net_out = self.net(image, **net_args) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\base_layer.py", line 34, in call__ return self._op(*args, **kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 360, in call return self._call_func(args, kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 311, in _call_func result = self._func(*args, *kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\network\toynet.py", line 48, in layer_op flow = conv_1(images, is_training) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\base_layer.py", line 34, in call return self._op(args, **kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 360, in call return self._call_func(args, kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 311, in _call_func result = self._func(*args, **kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\convolution.py", line 220, in layer_op output_tensor = activation(conv_layer(input_tensor)) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\base_layer.py", line 34, in call return self._op(*args, *kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 360, in call return self._call_func(args, kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\template.py", line 311, in _call_func result = self._func(args, **kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\convolution.py", line 90, in layer_op name='conv') File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 780, in convolution return op(input, filter) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 868, in call return self.conv_op(inp, filter) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 520, in call return self.call(inp, filter) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\nn_ops.py", line 204, in call__ name=self.name) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\ops\gen_nn_ops.py", line 1488, in conv3d name=name) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper op_def=op_def) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py", line 488, in new_func return func(*args, **kwargs) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3274, in create_op op_def=op_def) File "c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1770, in init self._traceback = tf_stack.extract_stack()

InvalidArgumentError (see above for traceback): input and filter must have the same depth [[node worker_0/ToyNet/conv_input_bnrelu/conv/conv (defined at c:\users\mednyh\appdata\local\continuum\anaconda3\lib\site-packages\niftynet\layer\convolution.py:90) = Conv3D[T=DT_FLOAT, _class=["loc:@worke...opFilterV2"], data_format="NDHWC", dilations=[1, 1, 1, 1, 1], padding="SAME", strides=[1, 1, 1, 1, 1], _device="/job:localhost/replica:0/task:0/device:CPU:0"](worker_0/train/Squeeze, ToyNet/conv_input_bnrelu/conv/w/read)]]

PML_multimodal_segmentation.txt