TuSimple / TuSimple-DUC

Understanding Convolution for Semantic Segmentation
https://arxiv.org/abs/1702.08502
Apache License 2.0
610 stars 118 forks source link

Train from "ImageNet pretrained weights" #9

Closed chienyiwang closed 6 years ago

chienyiwang commented 7 years ago

Hi,

I would like to train the network from ImageNet pretrained weights using your network structure and configurations. However, I didn't see the pretrained weights in your provided model folder. Is it possible to provide the ImageNet pretrained weight you used for training from scratch? Thank you so much!

chienyiwang commented 7 years ago

One more question is that: It seems like the training list you provided in the repo is the "bigger patch size" version. However, the "crop_shape" parameter in your config file is "800,800" instead of "880,880". Is there any other difference for the training configuration between the "bigger patch" and original version? Thanks!

GrassSunFlower commented 7 years ago

As for the ImageNet pretrained model, please see #1 .

GrassSunFlower commented 7 years ago

As for the second one. Yes, the data list generated from the script truly is our 'bigger patch' version data list. As for the config file, actually it's more like an example configuration template to show people how to use the configs, and what are the config entries. It's not the exact config we actually use for training. So back to the question, as we mentioned in our paper, we used 880 * 880 patch size to achieve our finest model.

chienyiwang commented 7 years ago

Hi,

Thank you for the explanation. As you have the best performance using the “bigger patch” version, could you provide the instructions for training a model from ImageNet which could reproduce your testing result? Thank you very much!

wpqmanu commented 7 years ago

Use the provided symbol (DUC+HDC), start training from your ImageNet pretrained model using the augmented data list. We used patch size 880x880 and SGD for training (1 per GPU for 4 GPUs) and full image for testing. The default parameters in our config file should work fine.

chienyiwang commented 7 years ago

Hi @wpqmanu Thank you for your instructions! BTW, is there any special feature in your version of MXNet? I wonder if the MXNet could do synchronized Batch Normalization which is adopted by some recent framework like PSPNet? Thanks!

GrassSunFlower commented 7 years ago

I'm afraid not.

shipengai commented 6 years ago

@GrassSunFlower @wpqmanu I meet a strange issue. In .cfg file, I set gpu=3, but the code will cost gpu0 399MiB and cost gpu3 9475M. Why it use gpu0?

shipengai commented 6 years ago

Another question. how can I get The epoch20 model(provided) by training init.param. Is the super-paramaters is different? I use init.param to train . When training 2 epoch, the training data IoU is only 0.26, The acc_ignore is 0.87. Is it normal?
I use 20.param to train. When starting the Epoch[0], the training data IoU is 0.84,The acc_ignore is 0.968. Thanks . I am looking foward to your reply. @GrassSunFlower @wpqmanu

GrassSunFlower commented 6 years ago
  1. why does the code takes gpu0. - This should be some about this line. https://github.com/TuSimple/TuSimple-DUC/blob/9f71b28153a72066899edd3df9c212467c192fe6/tusimple_duc/core/utils.py#L23 I'll fix this tomorrow, or you can simply fix it yourself.
  2. Is the super-paramaters is different? - Yes, it is.
  3. The acc_ignore is 0.87. Is it normal? - No, This is below expectation.