torch.nn.Conv1d(in_channels, "输入中的通道数"
out_channels, "卷积输出的通道数"
kernel_size, "卷积核大小"
stride, "卷积步幅。默认值:1"
padding, "添加到输入两侧的填充。默认值:0"
dilation, "内核元素之间的间距。默认值:1"
groups, "从输入通道到输出通道的阻塞连接数。默认值:1"
bias, "If True,向输出添加可学习的偏差。默认:True"
padding_mode "'zeros', 'reflect', 'replicate' 或 'circular'. 默认:'zeros'"
)
输入维度 (batchsize,in_channels,in_len) (批大小, 数据的通道数, 数据长度)
输出维度 (batchsize ,out_channels,out_len) (批大小, 产生的通道数, 卷积后长度)
卷积核的维度?(out_channels,in_channels,kernel_size)(卷积核数量,卷积核宽,卷积核长)
卷积后的维度(batchsize,out_channels,(n+2*p-k)/s+1)
假如输入x为(batchsize,len)的序列,即嵌入向量维度为1,进行一个回归预测。
添加一个维度:
x = x.unsqueeze(1)
x维度变为(batchsize,1,in_len),相当于设置数据的通道数为1,通过conv1d输入到网络中。
#layer为定义的网络
x = layer(x)
x维度变为(batchsize,out_channels,(n+2*p-k)/s+1)。
将元素x拉平:
#第一个参数指定了新张量维度设置为与原始张量 x 的第一个维度大小相同;
#-1表示占位符,自动计算大小以确保新张量中的元素总数保持不变。
x = x.view(x.size(0), -1)
x维度变为(batchsize,out_len)?,拉平后输入到全连接层(线性层,维度(out_len,num_class))中,最终输出维度(batchsize,num_class)
参考&转载自:CNN - nn.Conv1d使用-CSDN博客