【发布时间】:2019-05-20 13:37:03
【问题描述】:
假设一层的权重矩阵是[32,64,4,2]。是否可以冻结它的第一个过滤器,同时保持其他 31 个过滤器可训练?
我试过设置 requires_grad,但是这个参数是针对整个层的。
【问题讨论】:
标签: tensorflow neural-network deep-learning pytorch
假设一层的权重矩阵是[32,64,4,2]。是否可以冻结它的第一个过滤器,同时保持其他 31 个过滤器可训练?
我试过设置 requires_grad,但是这个参数是针对整个层的。
【问题讨论】:
标签: tensorflow neural-network deep-learning pytorch
这是可能的,但并不像您想象的那么简单。 nn.Conv2d 实际上所做的是初始化并拥有权重(和偏差,如果适用)参数,然后在 forward 中它只是分派给 functional.conv2d。
为了实现您的目标,您需要创建一个类,将冻结过滤器保存为buffer(非参数),并将剩余的 31 个过滤器保存为parameter。然后,向前,它只会连接缓冲区和参数以获得 32 通道过滤器并调度到functional.conv2d。
【讨论】: