7

I have found the VGG16 network pre-trained on the (color) imagenet database (as .npy). Is there a VGG16 network pre-trained on a gray-scale version of the imagenet database available?

(The usual 'tricks' for using the 3-channel filters of the conv1.1 layer on the gray 1-channel input are not enough for me. I am looking at incremental improvements of the network performance, so I need to see how the transfer learning behaves when the pre-trained model was 'looking' at gray-scale input).

Thanks!

MathMits
  • 91
  • 1
  • 4
  • 1
    I don't think there is any available. You can train one yourself on cloud services such as Floydhub. – Tien Dinh Feb 07 '18 at 15:32
  • Thank you for the response Luke. I haven't managed to find one myself yet. I don't know if I could get enough resources to do it myself. that's way I hope someone has done it already. – MathMits Mar 19 '18 at 17:29
  • You can try fine tuning the pretrained VGG16 – Tien Dinh Mar 19 '18 at 17:31
  • Yes Luke, that's what I do when I perform transfer learning (that's what you mean, right?). But in my case, as is the case usually I believe, it seems to be more effective to keep the coefficients of first convolution layers unchanged (non-trainable). Yet, I would like to have these (first layers) coefficients pre-trained on the huge gray-scale imagenet. – MathMits Mar 20 '18 at 18:38
  • Curious to hear if you've tried freezing all layers but the first one while training. Then once that's stable train the lot. – Alexander Soare Dec 22 '20 at 09:07

2 Answers2

2

Yes, there's this one: https://github.com/DaveRichmond-/grayscale-imagenet

Greyscale imagenet trained model, and also a version of it that's finetuned on X-rays. They showed that Imagenet performance barely drops btw.

GrimSqueaker
  • 412
  • 5
  • 17
1

@GrimSqueaker gave you the code of this paper : https://openaccess.thecvf.com/content_eccv_2018_workshops/w33/html/Xie_Pre-training_on_Grayscale_ImageNet_Improves_Medical_Image_Classification_ECCVW_2018_paper.html

However, the model trained in it is Inception v3 not VGG16.

You have two options:

  1. Use a colored pre-trained VGG16 model and duplicate one channel to the three channels
  2. Train your VGG16 model on the ImageNet grayscaled dataset.

You may find this link useful: https://github.com/zzangho/VGG16_grayscale

ma710u5
  • 21
  • 3