通过串联批处理元素进行反向传播

Backpropagation through concatenation of elements of a batch

提问人:Hitul Desai 提问时间:9/15/2023 更新时间:9/16/2023 访问量:38

问:

我有两个特征向量 V1(N, F1, 1) 和 V2(N, F2, 1)。我想将它们连接在维度 1 上以创建一个向量 V3(N, F1+F2, 1),并在批处理的元素(即跨 N)中应用自我注意力。为此,我正在考虑拆分批次并连接批次的所有元素,以创建批次大小为 1 的元素序列,并嵌入维度 F1+F2 和序列长度 N。因此,一个新的特征向量看起来像 V3'(1, N, F1+F2) (这是假设我们已经在最后一个维度上展平了以前的向量)。

我的问题是,这可能吗?由于批处理的元素被拆分,梯度的反向传播是否会出现问题?

视觉表现

我的想法是这应该有效,梯度应该毫无问题地传播,但我是初学者,在这里超出了我的深度。

PyTorch 神经网络 梯度下降 反向传播自 注意力

评论


答:

0赞 lejlot 9/16/2023 #1

这取决于你如何实现它的细节,但一般来说,现代框架中的串联运算会以你期望的方式传播梯度。

特别是完全可微分的torch.cat