卷积矩阵的Propper展开

2024-04-30 01:28:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从头开始实施一个litle深度学习框架,因为它很有趣。 显然,一个不到1000年的框架有一个2D卷积的实现。因为我希望至少能够用它来训练一些东西,所以用嵌套循环进行卷积不是一个好主意。 这就是为什么我要展开我的输入矩阵并将其与内核相乘。我已经成功地为一个(batch_size ,dims ,img_height ,width)形状的矩阵实现了forwardpass。 现在的问题是,我只能通过大量的换位和重塑来实现,当它进入后传球时,基本上一切都会中断。 右键知道我正在用内核K = (k,k)展开输入x = (bs ,dim ,h ,w) 进入unrolled = (bs ,dim ,h*w ,k**2)形状,它看起来已经很奇怪了,但不知怎么的,在前向通道中仍然有效,但正如我所说的,在后向通道中不起作用(可能用它实现工作后向通道,但我希望它是干净的),所以 现在的问题是:使用shape = (bs ,dim ,h ,w)to展开输入的支撑形状是什么?如何快速有效地实现这一点

感谢您抽出时间,祝您度过愉快的一天:)


Tags: 框架imgsizebsbatch矩阵内核卷积