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

Neo*_*Neo 4 python neural-network deep-learning conv-neural-network pytorch

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

注:我学过CNN,我清楚地知道如何手动计算输出维度。我正在寻找一种编程方法来确定它,因为我必须对不同长度的输入数据进行多次实验。

问题:在pytorch中,如何自动计算出多层后的输出维度并为下一层Conv1d设置?in_featuresLinear

Iva*_*van 7

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

linear = nn.LazyLinear(out_features)
Run Code Online (Sandbox Code Playgroud)