1.输入输出
- 输入(Input):
- 输入张量的形状应该是
[batch_size, in_channels, input_length]
。 batch_size
表示每个批次中样本的数量。in_channels
表示输入通道数,即输入特征的数量。input_length
表示输入序列的长度。
- 输入张量的形状应该是
- 输出(Output):
- 输出张量的形状为
[batch_size, out_channels, output_length]
。 batch_size
保持与输入相同。out_channels
表示输出通道数,即输出特征的数量。output_length
表示输出序列的长度。
- 输出张量的形状为
2.计算公式
其中:
- output_length 是输出的长度。
- input_length 是输入的长度。
- kernel_size 是卷积核的大小。
- padding 是填充大小。
- stride是步长大小。
3.代码
import torch
import torch.nn as nn
# 定义一个一维卷积层
conv1d = nn.Conv1d(in_channels=3, out_channels=64, kernel_size=5, stride=2, padding=2)
# 创建示例输入数据
# 假设输入序列长度为 100,输入通道数为 3,批次大小为 1
input_data = torch.randn(1, 3, 100)
# 对输入数据进行卷积操作
output_data = conv1d(input_data)
# 输出结果的形状
print("Output shape:", output_data.shape)
输入为(1,3,100)
输出的
输出的out_channels=64
所以输出为(1,64,50)