Pytorch中conv1d层形状的计算

Pytorch中conv1d层形状的计算,pytorch,size,Pytorch,Size,如何计算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

如何计算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)```

输出大小可按文档所示进行计算:

批大小保持不变,并且您已经知道通道数,因为您在创建卷积时指定了通道数(
depth_2

只需计算长度,您可以使用类似于上述公式的简单函数进行计算:

def计算输出长度(长度英寸,内核大小,步幅=1,填充=0,膨胀=1):
return(length_in+2*填充-膨胀*(kernel_size-1)-1)//步长+1
指定的默认值也是
nn.Conv1d
的默认值,因此您只需指定创建卷积所需的默认值。它使用整数除法
/
,因为分子可能不能被
步数
整除,在这种情况下,它只会向下舍入(由括号表示,括号仅在底部闭合)


同样的公式也适用于,但请记住,如果未指定
stride
,它会自动设置
stride=kernel\u size

输出大小可按文档所示进行计算:

批大小保持不变,并且您已经知道通道数,因为您在创建卷积时指定了通道数(
depth_2

只需计算长度,您可以使用类似于上述公式的简单函数进行计算:

def计算输出长度(长度英寸,内核大小,步幅=1,填充=0,膨胀=1):
return(length_in+2*填充-膨胀*(kernel_size-1)-1)//步长+1
指定的默认值也是
nn.Conv1d
的默认值,因此您只需指定创建卷积所需的默认值。它使用整数除法
/
,因为分子可能不能被
步数
整除,在这种情况下,它只会向下舍入(由括号表示,括号仅在底部闭合)


同样的公式也适用于,但请记住,如果未指定
stride
,它会自动设置
stride=kernel\u size

谢谢您的回复。在我的例子中,这个公式中的Lin应该是depth_1?。我说得对吗?。因为在conv1d(输入、输出、内核大小、步幅)中,不,这些是通道,而不是长度,所以
depth\u 1
C\u in
depth\u 2
C\u out
。卷积与长度无关,这使得使用不同长度的输入成为可能。这取决于您输入到模型的输入,该输入的大小为[batch\u size,in\u Channel,length]。谢谢您的回复。在我的例子中,这个公式中的Lin应该是depth_1?。我说得对吗?。因为在conv1d(输入、输出、内核大小、步幅)中,不,这些是通道,而不是长度,所以
depth\u 1
C\u in
depth\u 2
C\u out
。卷积与长度无关,这使得使用不同长度的输入成为可能。这取决于您输入到模型的输入,该输入的大小为[batch_size,in_Channel,length]。