- 获取链接
- X
- 电子邮件
- 其他应用
- 获取链接
- X
- 电子邮件
- 其他应用
输入(batch_size, in_channel, H, W)
经过nn.ConvTranspose2d(in_channel, out_channel, kernel_size, stride, padding)
输出(batch_size, out_channel, (H-1)*stride + kernel_size - 2* padding)
下面的示例代码展示了如何从256的tensor变为,(32,512,512)大小的特征。
通常可以应用到人体的逆蒙皮权重的学习中。后续通过F.grid_sample来采样权重。
class Feature_plane(nn.Module): def __init__(self): super(Feature_plane, self).__init__() self.fc = nn.Sequential( nn.Linear(256, 1024), nn.ReLU(inplace=True) ) self.conv = nn.Sequential( nn.ConvTranspose2d(1024, 512, kernel_size=4, stride=2, padding=0), nn.BatchNorm2d(512), nn.ReLU(inplace=True), nn.ConvTranspose2d(512, 256, kernel_size=4, stride=4, padding=0), nn.BatchNorm2d(256), nn.ReLU(inplace=True), nn.ConvTranspose2d(256, 128, kernel_size=4, stride=4, padding=0), nn.BatchNorm2d(128), nn.ReLU(inplace=True), nn.ConvTranspose2d(128, 64, kernel_size=4, stride=4, padding=0), nn.BatchNorm2d(64), nn.ReLU(inplace=True), nn.ConvTranspose2d(64, 32, kernel_size=4, stride=2, padding=0), nn.Tanh() ) def forward(self, x): x = self.fc(x) # x = x.view(-1, 64, 4, 4) x = x.view(-1, 1024, 1, 1) x = self.conv(x) # print("x3",x.shape) # exit() return x
评论
发表评论