对 FC 层以外的 MXNet 进行微调

Azi*_*Azi 0 deep-learning conv-neural-network mxnet

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

预训练网络

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

微调 FC 层

如果我们想要微调除 FC 层以外的更多 ConnNet 块,我们将这些层的 layer.trainable=True 设置为: 在 Keras 中微调 ConvNet 块

我的问题是如何在 MXNet 中做类似的事情

Ind*_*thi 5

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

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

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

如果您使用的是符号 API:

您可以fixed_param_names在创建Module. 您可以提供与要冻结的参数名称匹配的正则表达式。检查这个例子。