Pytorch:Conv1d后自动判断Linear层的输入形状

Pytorch: Automatically determin the input shape of Linear layer after Conv1d

我想构建一个模型,其中包含多个 Conv1d 层,然后是多个 Linear 层。由于 Conv1d 层不需要数据长度,因此 Conv1d 层将适用于任何给定长度的数据。然而问题出现在 Linear 层,因为我不知道如何让模型用不同长度的数据进行实验。现在每次我改变输入数据的长度,Conv1d层的输出大小都会改变,因此我必须手动重置Linear层的in_features

注:我学过CNN,手算输出维度很清楚。我正在寻找一种程序化的方法来确定它,因为我必须用不同长度的输入数据试验很多次。

问题:在pytorch中,如何自动算出许多Conv1d层后的输出维度并为以下[=设置in_features 11=]层?

您可以使用内置函数 nn.LazyLinear,它将在第一次推理时找到 in_features 并相应地初始化适当数量的权重:

linear = nn.LazyLinear(out_features)