【问题标题】:How to use conv2d in this case在这种情况下如何使用 conv2d
【发布时间】:2022-01-23 08:37:39
【问题描述】:

我想创建一个神经网络层,这样:

  • 对于大小为 100 的输入,假设每 5 个样本创建“块”
  • 层应该为每个块计算 3 个值
  • 所以这一层的输入/输出大小应该是:100 -> 20*3
  • 每个大小为 5 的块(并且只有这个块)完全连接到大小为 3 的结果块

如果我理解正确,我可以使用 Conv2d 来解决这个问题。但我不确定如何正确选择 conv2d 参数。

Conv2d 适合这个任务吗?如果是这样,正确的参数是什么?是这样吗

  • 输入通道 = 100
  • 输出通道 = 20*3
  • 内核 = (5,1) ?

【问题讨论】:

  • 你想为每5个大小的块共享参数吗?

标签: deep-learning neural-network pytorch


【解决方案1】:

您可以使用Conv2DConv1D。 如果数据形状类似于 batch x 100 x n_features,您可以在此设置中使用 Conv1D

Input channels:  n_features
Output channels: 3 * output_features
kernel:          5
strides:         5

因此,内核应用于 5 个样本并生成 3 个输出。 n_featuresoutput_features 的值可以是您喜欢的任何值,也可以是 1。将步幅设置为 5 会产生非重叠卷积,以便每个块对一个输出做出唯一贡献。

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 2017-05-16
    • 2012-10-06
    • 2011-05-18
    • 2019-11-29
    • 2022-01-23
    • 2018-05-20
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多