I am trying to implement greedy layer-wise pretraining for Convolutional Neural Network binary classifier using AutoEncoders. However, I am a little bit confused regarding the logic of implementation. If I understood correctly, I need to:

  1. Build a CNN architecture and flag all layers as NOT TRAINABLE (i.e. model.layer[idx].trainable = False)
  2. Iterate through each layer, make layer in the current iteration trainable, while others remain NOT trainable, and fit the model for couple of epochs using MSE loss.
  3. Repeat step 2 until all layers, but the one meant for classification, are trained.
  4. Fine-tune network for its original task.

Is this correct? If so, can anyone tell me how is greedy layer-wise pretraining different from training a complete AutoEncoder architecture and then using Encoder weights to initialize CNN architecture which is going to be fine-tuned latter.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.