如何使千层面不受影响

2024-05-16 21:26:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个经过训练的神经网络,然后根据我的具体需要对它进行微调。我想使用Python和宽面条框架来实现这一点。开:

https://github.com/Lasagne/Recipes/blob/master/examples/ImageNet%20Pretrained%20Network%20%28VGG_S%29.ipynb

我发现了一个关于如何使用预先训练的网络来处理特定图像的例子。我的问题是我想用 在上面的链接中描述的网络作为起点,并添加最后一层,使其实现两个类 这是我需要的分类器。因此,我想保持网络中的所有层冻结,只允许在我最后添加的层中进行培训。在

很显然,有一种方法可以表明千层面应该是“不可训练的”,但我在网上找不到这样做的例子。在

如有任何想法,我们将不胜感激。在


Tags: https网络githubmastercom框架神经网络examples
2条回答

从要保持冻结的图层的所有参数中删除trainable标记:

def freeze_layer(layer):
    for param in layer.params.values():
         param.remove('trainable')

要将所有网络冻结到某一层,只需在其较低层上迭代:

^{pr2}$

代码未测试。有关详细信息,请参见this discussion。在

将要使用lr冻结的层设置为0,并仅将要微调lr的层设置为非零。目前还没有网上的例子。但是你应该检查这个线程https://groups.google.com/forum/#!topic/lasagne-users/2z-6RrgiHkE

相关问题 更多 >