Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Training image and mask error #19

Open
tanchaozhen opened this issue Nov 26, 2019 · 4 comments
Open

Training image and mask error #19

tanchaozhen opened this issue Nov 26, 2019 · 4 comments
Labels
help wanted Extra attention is needed

Comments

@tanchaozhen
Copy link

Thank you for your implementation of SegCaps.
I train on my dataset ,got a problem"Unable to load img or masks for 00001,too many indices for array,Skipping file".
When loading MSCOO dataset with 10 images, it works.
My image are 2D uint8 greyscale of (512,512), masks are the same 2D uint8 greyscale of (512,512). I checked the Issues, someone said masks should be (512,512,1), Does my images and masks fit the input format?If not, what should I do for it?
Any advice would be appreciated.

@tanchaozhen
Copy link
Author

@Cheng-Lin-Li help wanted

@Cheng-Lin-Li Cheng-Lin-Li added the help wanted Extra attention is needed label Nov 27, 2019
@Cheng-Lin-Li
Copy link
Owner

Please refer to the readme.
4-3-1. For 2D images
Dimension of images: (Width, Height, Channels)

Your input should be 3 channels (512, 512, 1)

@tanchaozhen
Copy link
Author

I step through the code. in load_2d_data.py line84, "mask = convert_mask_data(mask)" convert mask images to NPZ,Then,in custom_data_aug.py line238 "change_background_color" need 4 channels( Convert mask color of 4 channels png image to new color ).I checked coco's mask is 4 channel, so it works. For my data, mask is 2D (512,512) binary image, I annotated line84 “convert_mask_data” line instead of adding mask=np.expand_dim(mask,-1) to make mask being (512,512,1).so It works for my data.

@tanchaozhen
Copy link
Author

Then,I trained my data,but val_out_seg_dice_hard did not improve from 0.42 after 2 epoch, and test result is error.
First, I suspect there are some problems for my input data after modifing your code.So, I downloaded 1000 coco images and trained them with the original code. The parameters is --train --initial_lr 0.001 --net segcapsr3 --loss dice --data_root_dir=data_coco --which_gpus=0 --dataset mscoco17 --epoch=20. However,val_out_seg_dice_hard did not improve from 0.39148 for epoch 14,and test results are quite different from groundtruth.

996/1000 [============================>.] - ETA: 4s - loss: 0.7128 - out_seg_loss: 0.6852 - out_recon_loss: 0.0276 - out_seg_dice_hard: 0.1990INFO 2019-11-30 16:02:46,381:
path_to_np=data_coco\np_files\train474.npz

997/1000 [============================>.] - ETA: 3s - loss: 0.7129 - out_seg_loss: 0.6852 - out_recon_loss: 0.0276 - out_seg_dice_hard: 0.1989INFO 2019-11-30 16:02:47,458:
path_to_np=data_coco\np_files\train951.npz

998/1000 [============================>.] - ETA: 2s - loss: 0.7127 - out_seg_loss: 0.6851 - out_recon_loss: 0.0276 - out_seg_dice_hard: 0.1990INFO 2019-11-30 16:02:48,536:
path_to_np=data_coco\np_files\train776.npz

999/1000 [============================>.] - ETA: 1s - loss: 0.7125 - out_seg_loss: 0.6849 - out_recon_loss: 0.0276 - out_seg_dice_hard: 0.1990INFO 2019-11-30 16:02:49,680:
path_to_np=data_coco\np_files\train957.npz

1000/1000 [==============================] - 1082s 1s/step - loss: 0.7122 - out_seg_loss: 0.6846 - out_recon_loss: 0.0276 - out_seg_dice_hard: 0.1995 - val_loss: 0.6265 - val_out_seg_loss: 0.5915 - val_out_recon_loss: 0.0351 - val_out_seg_dice_hard: 0.3270

Epoch 00014: val_out_seg_dice_hard did not improve from 0.39148
Epoch 15/20

I adjust the cords,such as initial_lr, loss. The effects did not improved.
Any advice would be appreciated. @Cheng-Lin-Li

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants