如何冻结一层过滤器,同时保持其他过滤器的可训练性?

时间:2019-05-20 13:37:03

标签: tensorflow neural-network deep-learning pytorch

假设一层的权重矩阵为[32,64,4,2]。是否可以冻结第一个过滤器,同时保持其他31个过滤器的可训练性?

我尝试设置require_grad,但是此参数适用于整个图层。

1 个答案:

答案 0 :(得分:0)

这是可能的,但没有您想像的那么简单。 nn.Conv2d有效的作用是初始化并拥有权重(和偏差,如果适用),然后在forward中将其分派到functional.conv2d

为了实现您的目标,您将需要创建一个类,其中将冻结的过滤器保存为buffer(非参数),将剩余的31个过滤器保存为parameter。然后,向前,它将连接缓冲区和参数以获得32通道过滤器,并分派到functional.conv2d