0

我想测试在训练期间随机重置某些神经元的影响是什么,在一个基于 Pytorch 的模型中,它具有多个线性层,如下所示:

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.linear1 = nn.Linear(D, M)
        self.linear2 = nn.Linear(M, M)
        self.linear3 = nn.Linear(M, M)
        self.linear4 = nn.Linear(M, K)

    def forward(self, x):
        x = F.relu(self.linear1(x))
        x = F.relu(self.linear2(x))
        x = F.relu(self.linear3(x))
        x = self.linear4(x)
        x = F.log_softmax(x, dim=1)
               
        return x

理想情况下,我想实现一个函数/代码片段,在每个时期开始时重置每一层中 1 个或多个随机神经元的权重。

我尝试通过调用参数或 state_dict 来实现此功能,但到目前为止,我在尝试此操作时仅获得许可和异常错误。我也不确定这是否应该在模块本身或培训部分实现。

任何建议都将受到高度欢迎!

4

0 回答 0