Issam28 / Brain-tumor-segmentation

A deep learning based approach for brain tumor MRI segmentation.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeError: can only concatenate list (not "int") to list

chengjianhong opened this issue · comments

Hi, I found the TypeError while run train.py. the detail is as follows:

Traceback (most recent call last):
File "train.py", line 108, in
brain_seg = Training(batch_size=4,nb_epoch=3,load_model_resume_training=model_to_load)
File "train.py", line 42, in init
unet =Unet_model(img_shape=(128,128,4))
File "/root/userfolder/workspace/Brain-tumor-segmentation/model.py", line 21, in init
self.model =self.compile_unet()
File "/root/userfolder/workspace/Brain-tumor-segmentation/model.py", line 37, in compile_unet
model.compile(loss=gen_dice_loss, optimizer=sgd, metrics=[dice_whole_metric,dice_core_metric,dice_en_metric])
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 451, in compile
handle_metrics(output_metrics)
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training.py", line 420, in handle_metrics
mask=masks[i])
File "/usr/local/lib/python3.5/dist-packages/keras/engine/training_utils.py", line 404, in weighted
score_array = fn(y_true, y_pred)
File "/root/userfolder/workspace/Brain-tumor-segmentation/losses.py", line 47, in dice_core_metric
y_core=K.sum(y_true_f[:,[1,3]],axis=1)
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/ops/array_ops.py", line 490, in _slice_helper
end.append(s + 1)
TypeError: can only concatenate list (not "int") to list

I have the same error

hello
I have also the same error !!!

Anyone solved it?

I solved this by using

 y_core=K.sum(tf.gather(y_true_f, [1,3],axis =1),axis=1)
 p_core=K.sum(tf.gather(y_pred_f, [1,3],axis =1),axis=1)

instead of

y_core=K.sum(y_true_f[:,[1,3]],axis=1)
p_core=K.sum(y_pred_f[:,[1,3]],axis=1)

in losses.py

I solved this by using

 y_core=K.sum(tf.gather(y_true_f, [1,3],axis =1),axis=1)
 p_core=K.sum(tf.gather(y_pred_f, [1,3],axis =1),axis=1)

instead of

y_core=K.sum(y_true_f[:,[1,3]],axis=1)
p_core=K.sum(y_pred_f[:,[1,3]],axis=1)

in losses.py

I'm still get the error, with Keras 2.1.5 what version you are using?