Благодаря ptrblck я смог ее решить.Я могу определить новый слой свертки как conv
и в соответствии с примером я могу установить ядро идентификации, используя -
weights = ch.Tensor([[0, 0, 0], [0, 1, 0], [0, 0, 0]]).unsqueeze(0).unsqueeze(0)
weights.requires_grad = True
conv = nn.Conv2d(1, 1, kernel_size=3, stride=1, padding=1, bias=False)
with ch.no_grad():
conv.weight = nn.Parameter(weights)
. Затем я смогу продолжать использовать conv
в качестве моего обычного слоя nn.Conv2d
.