nn.Conv1d个人记录

nn.Conv1d参数

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

举例嵌入向量维度为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博客

你可能感兴趣的:(深度学习,人工智能,神经网络)