【问题标题】:How do you calculate the input to the first linear layer of a CNN?如何计算 CNN 第一线性层的输入?
【发布时间】:2021-10-26 00:51:57
【问题描述】:

所以,我得到了使用 PyTorch 构建的 CNN 代码:CNN 代码图片1

到目前为止,我已经能够通过在forward 函数,但我需要自动化实验,我不能只打印每个测试的值并更改代码。

我的输入张量的大小也是可变的(我有信号作为我的数据,我使用一个窗口来获取每个样本的 X 个点,因此例如 1020 的窗口大小将导致 1020x1x3 的张量,我猜是1D CNN 和我有 3 个输入通道)。

那么,如何使用这段代码自动获取 self.n_features 参数(线性层的输入)?

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python pytorch conv-neural-network


【解决方案1】:

一种方法是使用nn.Linear 的惰性版本,即nn.LazyLinear。在你的情况下:

self.fc = nn.LazyLinear(n_class)

它将在第一层推理中初始化其权重。

【讨论】:

  • 这将是一个美妙而简单的解决方案,但由于兼容性问题,我被困在使用 PyTorch 1.2.0 并且该类尚未实现(也许我应该在我的帖子中提到这一点,我的坏)。
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 2021-05-10
  • 2017-08-27
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 2020-01-12
  • 2022-11-22
相关资源
最近更新 更多