小编Gab*_*rti的帖子

在 pytorch 中创建一个具有自定义权重初始值的新模型

我是 pytorch 的新手,我想了解如何设置网络的第一个隐藏层的初始权重。我解释得更好一点:我的网络是一个非常简单的单层 MLP,有 784 个输入值和 10 个输出值

 class Classifier(nn.Module):
        def __init__(self):
          super().__init__()
        self.fc1 = nn.Linear(784, 128)
        self.fc2 = nn.Linear(128, 10)
        # Dropout module with 0.2 drop probability
        self.dropout = nn.Dropout(p=0.2)

    def forward(self, x):
        # make sure input tensor is flattened
        # x = x.view(x.shape[0], -1)

        # Now with dropout
        x = self.dropout(F.relu(self.fc1(x)))

        # output so no dropout here
        x = F.log_softmax(self.fc2(x), dim=1)

        return x 

Run Code Online (Sandbox Code Playgroud)

现在,我有一个形状为 (128, 784) 的 numpy 矩阵,其中包含我想要的 fc1 中的权重值。如何使用矩阵中包含的值初始化第一层的权重?

在其他答案中在线搜索我发现我必须定义权重的初始化函数,例如

def weights_init(m):
    classname = m.__class__.__name__

    if …
Run Code Online (Sandbox Code Playgroud)

python neural-network pytorch

3
推荐指数
1
解决办法
4035
查看次数

标签 统计

neural-network ×1

python ×1

pytorch ×1