class test(nn.Module):
def __init__(self):
super(test, self).__init__()
self.conv = nn.Sequential(nn.Conv2d(3,3,kernel_size=3,stride=1),
nn.Conv2d(3,4,kernel_size=3,stride=1))
self.fc = nn.Sequential(nn.Linear(252 * 252 * 4, 10), nn.ReLU(), nn.Linear(10, 1))
def forward(self, x):
out = self.conv(x)
out = out.flatten()
out = self.fc(out)
return out
(1)向网络中添加一层
如果在网络的卷积层的后面再加一个卷一层.
net.conv.add_module('lastconv', nn.Conv2d(4,4, kernel_size=1))
其中lastconv是加入卷积层的名字。
(2)删除网络中的某一层
例如把刚才加入的层删除。
net.conv.lastconv = nn.Sequential()
当然上面的方法是将原来那个卷积层不起作用,下面展示另一种方法。
net.conv = nn.Sequential(*list(net.conv.children())[:-1])
(3)修改某一层的卷积核
这个使用的方法和第一种删除某一层相似。例如将全连接最后一层修改。
net.fc[2] = nn.Linear(10, 5)
版权声明:本文为m0_50501767原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。