在这种情况下如何使用 conv2d
How to use conv2d in this case
我想创建一个 NN 层:
- 对于大小为 100 的输入,假设每 5 个样本创建“块”
- 该层应该为每个块计算比方说 3 个值
- 所以这一层的 input/output 大小应该是:100 -> 20*3
- 每个大小为 5 的块(并且只有这个块)完全连接到大小为 3 的结果块
如果我理解正确,我可以使用 Conv2d 来解决这个问题。但是我不确定如何正确选择conv2d参数。
Conv2d 适合这个任务吗?如果是这样,正确的参数是什么?是吗
- 输入通道数 = 100
- 输出通道数=20*3
- 内核 = (5,1)
?
您可以使用 Conv2D
或 Conv1D
。
使用形状像 batch x 100 x n_features
的数据,您可以在此设置中使用 Conv1D
:
Input channels: n_features
Output channels: 3 * output_features
kernel: 5
strides: 5
因此,内核应用于 5 个样本并生成 3 个输出。 n_features
和 output_features
的值可以是您喜欢的任何值,也可以是 1
。将步幅设置为 5 会导致非重叠卷积,这样每个块都对一个输出有独特的贡献。
我想创建一个 NN 层:
- 对于大小为 100 的输入,假设每 5 个样本创建“块”
- 该层应该为每个块计算比方说 3 个值
- 所以这一层的 input/output 大小应该是:100 -> 20*3
- 每个大小为 5 的块(并且只有这个块)完全连接到大小为 3 的结果块
如果我理解正确,我可以使用 Conv2d 来解决这个问题。但是我不确定如何正确选择conv2d参数。
Conv2d 适合这个任务吗?如果是这样,正确的参数是什么?是吗
- 输入通道数 = 100
- 输出通道数=20*3
- 内核 = (5,1) ?
您可以使用 Conv2D
或 Conv1D
。
使用形状像 batch x 100 x n_features
的数据,您可以在此设置中使用 Conv1D
:
Input channels: n_features
Output channels: 3 * output_features
kernel: 5
strides: 5
因此,内核应用于 5 个样本并生成 3 个输出。 n_features
和 output_features
的值可以是您喜欢的任何值,也可以是 1
。将步幅设置为 5 会导致非重叠卷积,这样每个块都对一个输出有独特的贡献。