问题:如何经过convTransposed1d输出指定大小的特征?
import torch
from torch import nn
import torch.nn.functional as F
conv1 = nn.Conv1d(1, 2, 3, padding=1)
conv2 = nn.Conv1d(in_channels=2, out_channels=4, kernel_size=3, padding=1)
#转置卷积
dconv1 = nn.ConvTranspose1d(4, 1, kernel_size=3, stride=2, padding=1, output_padding=1)
x = torch.randn(16, 1, 8)
print(x.size())
x1 = conv1(x)
x2 = conv2(x1)
print(x2.size())
x3 = dconv1(x2)
print(x3.size())
'''
torch.Size([16, 1, 8])
torch.Size([16, 4, 8]) #conv2输出特征图大小
torch.Size([16, 1, 16]) #转置卷积输出特征图大小
'''
计算转置卷积输出特征大小公式
输入: ( N , C i n , L i n ) (N, C_{in}, L_{in}) (N,Cin,Lin)
输出: ( N , C o u t , L o u t ) (N, C_{out}, L_{out})