【发布时间】:2023-04-07 18:26:01
【问题描述】:
我正在尝试学习接受 3 个通道并输出 3 个通道的 3x3 conv2d 层的权重。对于本次讨论,请在每种情况下考虑偏差 = 0。然而,conv 层的权重是间接学习的。我有一个 2 层的多层感知,第一层有 9 个节点,第二层有 9 个节点。然后,2d conv 层的权重正是使用此 MLP 学习的权重,即nn.Linear(9,9)。我知道在这种情况下我将不得不使用nn.functional.conv2d(input,weight)。但是具体如何从MLP中提取权重并用于卷积还不清楚,可以想到以下。
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
m=nn.Linear(9,9)
def forward(self, x):
# some operations involving MLP `m`
return nn.Functional.conv2d(x,m.weight)
有人可以在 PyTorch 中提供一个简短的虚拟代码来实现这种允许反向传播的训练配置吗?
【问题讨论】:
标签: pytorch