首页 > 解决方案 > Pytorch:在Conv1d之后自动确定Linear层的输入形状

问题描述

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

注意:我学过 CNN,我清楚地知道如何手动计算输出尺寸。我正在寻找一种编程方式来确定它,因为我必须多次尝试不同长度的输入数据。

问题:在pytorch中,如何自动计算出Conv1d多层后的输出尺寸并in_features为下Linear一层设置?

标签: pythondeep-learningneural-networkpytorchconv-neural-network

解决方案


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

linear = nn.LazyLinear(out_features)

推荐阅读