除FC层之外的MXNet上的微调

时间:2018-03-30 01:25:27

标签: deep-learning conv-neural-network mxnet

我是MXNet的新手,我想知道是否有人知道如何微调CNN中的更多层而不仅仅是FC层。我正在查看的所有示例,仅在FC层上进行微调。在Keras中,这可以轻松完成,除FC块之外的更多块ConvNets可以进行微调:https://github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/10_Fine-Tuning.ipynb

Pre-trained network

如果我们只想微调FC块,我们将所有层的可训练性都设为false: layer.trainable = False

finetune the FC layers

如果我们想微调除FC层之外的更多ConnNet块,我们为这些层制作layer.trainable = True: finetune blocks of ConvNet in Keras

我的问题是如何在MXNet中做同样的事情

1 个答案:

答案 0 :(得分:3)

答案取决于您使用的是命令式(Gluon)还是符号API。

如果您使用命令式(Gluon)API:

您可以提供要训练的参数的子集,而不是使用所有参数(gluon.Trainer)创建net.collect_params()。 <> 1}}中传递给Trainer的任何参数都将保持冻结状态。

如果您使用的是Symbolic API:

您可以在创建ParameterDict时使用fixed_param_names参数。您可以提供与要冻结的参数名称匹配的正则表达式。检查this示例。