richzhang / colorization

Automatic colorization using deep neural networks. "Colorful Image Colorization." In ECCV, 2016.
http://richzhang.github.io/colorization/
BSD 2-Clause "Simplified" License
3.34k stars 923 forks source link

feature_learning_testing #19

Closed ymcidence closed 7 years ago

ymcidence commented 7 years ago

Hi, Richard,

For the feature-learning-testing segmentation part, you firstly pre-train an AlexNet networkon the colourization task, and then fine-tune a FCN-AlexNet using the pre-trianed AlexNet model for segmentation on PASCAL VOC 2012, is it right?

If yes, however, I find the pre-trained model in the file solve.py for segmentation "default='./models/alexnet_release_450000_nobn_rs.caffemodel')". I am not sure the model "alexnet_release_450000_nobn_rs.caffemodel" is trained for colourization because the file 'train_val_nobn_rs.prototxt' which looks related to the model from their names is a classification task. Anything I understand wrongly?

Thank you very much.

richzhang commented 7 years ago

Yes, so train_val_nobn_rs.prototxt is used for the rescaling portion of postprocess_model.sh, in particular in the rescaling command python ./resources/magic_init/magic_init_mod.py ./train_alexnet/train_val_nobn_rs.prototxt ./train_alexnet/colornet_iter_${2}_nobn_rs.caffemodel [...]

The rescaling adjusts the weights so that all layers "learn" at the same rate roughly. The rescaling function does not use any ground truth labels - it will strip away the softmax layer and inject a random gradient at the top fc8_ layer. You can see that the label blob in train_val_nobn_rs.prototxt is all 0s actually.