pytorch自定义卷积核权值参数
生活随笔
收集整理的這篇文章主要介紹了
pytorch自定义卷积核权值参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
pytorch中構建卷積層一般使用nn.Conv2d方法,有些情況下我們需要自定義卷積核的權值weight,而nn.Conv2d中的卷積參數是不允許自定義的,此時可以使用torch.nn.functional.conv2d簡稱F.conv2d
torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)F.conv2d可以自己輸入且也必須要求自己輸入卷積權值weight和偏置bias。因此,構建自己想要的卷積核參數,再輸入F.conv2d即可。下面是一個用F.conv2d構建卷積層的例子,這里為了網絡模型需要寫成了一個類:
class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.weight = nn.Parameter(torch.randn(16, 1, 5, 5)) # 自定義的權值self.bias = nn.Parameter(torch.randn(16)) # 自定義的偏置def forward(self, x):x = x.view(x.size(0), -1)out = F.conv2d(x, self.weight, self.bias, stride=1, padding=0)return out值得注意的是,pytorch中各層需要訓練的權重的數據類型設為nn.Parameter,而不是Tensor或者Variable。parameter的require_grad默認設置為true,而Varaible默認設置為False。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的pytorch自定义卷积核权值参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch加载的模型测试的结果和保存
- 下一篇: 胶囊网络不同实现代码