我们如何在PyTorch中计算conv1d层的形状。在PyTorch中有没有什么命令可以计算这些图层的大小和形状。
nn.Conv1d(depth_1, depth_2, kernel_size=kernel_size_2, stride=stride_size),
nn.ReLU(),
nn.MaxPool1d(kernel_size=2, stride=stride_size),
nn.Dropout(0.25)```
可以计算输出大小,如文档中所示。nn.Conv1d
- 形状:
批量大小保持不变,您已经知道了通道数,因为您在创建卷积时已经指定了通道数(depth_2
在本例中)。)
只有长度需要计算,你可以用一个类似于上面公式的简单函数来计算。
def calculate_output_length(length_in, kernel_size, stride=1, padding=0, dilation=1):
return (length_in + 2 * padding - dilation * (kernel_size - 1) - 1) // stride + 1
所指定的默认值也是以下公式的默认值 nn.Conv1d
因此,你只需要指定你也指定什么来创建卷积。它使用一个整数除法 //
因为分子可能不被除以 stride
在这种情况下,它只是被四舍五入(用只在底部关闭的括号表示)。
同样的公式也适用于 nn.MaxPool1d
但请记住,它将自动设置 stride = kernel_size
如果 stride
未指定。