Pytorch:Conv1d层后线性层输入形状的自动确定

4
我希望建立一个模型,其中包含多个Conv1d层和多个Linear层。由于Conv1d层不需要数据长度,因此Conv1d层适用于任何给定长度的数据。但是问题出现在Linear层,因为我不知道如何让模型实验不同长度的数据。现在,每次更改输入数据的长度时,Conv1d层的输出大小将发生变化,因此我必须手动重置Linear层的in_features
注意:我学过CNN,清楚地知道如何手动计算输出尺寸。我正在寻找一种程序化的方法来确定它,因为我需要尝试使用不同长度的输入数据多次。
问题:在pytorch中,如何自动计算出经过多个Conv1d层后的输出维度,并设置后续Linear层的in_features
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接