我是MXNet的新手,我想知道是否有人知道如何微调CNN中的更多层而不仅仅是FC层。我正在查看的所有示例,仅在FC层上进行微调。在Keras中,这可以轻松完成,除FC块之外的更多块ConvNets可以进行微调:https://github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/10_Fine-Tuning.ipynb
如果我们只想微调FC块,我们将所有层的可训练性都设为false: layer.trainable = False
如果我们想微调除FC层之外的更多ConnNet块,我们为这些层制作layer.trainable = True: finetune blocks of ConvNet in Keras
我的问题是如何在MXNet中做同样的事情
答案 0 :(得分:3)
答案取决于您使用的是命令式(Gluon)还是符号API。
您可以提供要训练的参数的子集,而不是使用所有参数(gluon.Trainer
)创建net.collect_params()
。 <> 1}}中传递给Trainer的任何参数都将保持冻结状态。
您可以在创建ParameterDict
时使用fixed_param_names
参数。您可以提供与要冻结的参数名称匹配的正则表达式。检查this示例。