python - Pytorch:在Conv1d之后自动确定Linear层的输入形状
问题描述
我想构建一个具有多个Conv1d
层的模型,然后是多个Linear
层。由于层不需要数据长度Conv1d
,因此Conv1d
层将适用于任何给定长度的数据。然而问题在于Linear
层,因为我不知道如何让模型用不同长度的数据进行试验。现在每次我改变输入数据的长度,Conv1d
层的输出大小都会改变,因此我必须手动重置in_features
层Linear
。
注意:我学过 CNN,我清楚地知道如何手动计算输出尺寸。我正在寻找一种编程方式来确定它,因为我必须多次尝试不同长度的输入数据。
问题:在pytorch中,如何自动计算出Conv1d
多层后的输出尺寸并in_features
为下Linear
一层设置?
解决方案
您可以使用内置函数nn.LazyLinear
,它将in_features
在第一次推理中找到并相应地初始化适当数量的权重:
linear = nn.LazyLinear(out_features)
推荐阅读
- c# - 在 Windows 服务器的子目录中安装 Wordpress 以及 asp.net
- r - 在R中将行转换为列
- django - 如何提高django过滤条件的速度?
- swift - 当我绑定它的值时,SwiftUI TextField 的行为很奇怪(不能输入中文,偶尔退格会跳过一个字符)
- php - php循环向数据库添加额外数据
- android-recyclerview - 我正在尝试将我正在关注的书中的代码添加到我正在编写的现有代码中
- javascript - 如何在 keydown 上获取父 contenteditable div 的子 ID?
- python - Python使用函数找出数组中的重复项
- monogame - Monogame (Linux) - MouseState.ScrollWheelValue 不变
- javascript - 如何防止“长按”触摸事件侦听器也被“触摸”事件调用?