Altifigence Academy

9 / 24 · 概念

直接卷积参考

输入 [2,3]、权重 [4,−1]、偏置为一时,如果每次输入通道迭代都加一次偏置,会得到什么错误结果?

优先建立易于检查的参考

黄金模型优先考虑约定是否清晰可见,而不是速度。先遍历输出通道、输出行和输出列,再归约输入通道及卷积核行列。计算每个输入坐标,并在边界之外提供零。这样可以定位第一个错误输出以及具体出现分歧的项,不必模仿硬件优化后的循环顺序。

y[m,h,w]=b[m]+∑c∑r∑sx[c,hSh−Pt+rDh,wSw−Pl+sDw]w[m,c,r,s]y[m,h,w]=b[m]+\sum_c\sum_r\sum_s x[c,hS_h-P_t+rD_h,wS_w-P_l+sD_w]w[m,c,r,s]

每个输出只用 b[m] 初始化累加器一次。如果在归约内部加入偏置,会重复偏置。整数模型中,x 和 w 为中心化编码,偏置使用乘积比例。

多通道计算示例

两个 1×1 输入通道分别存储二和三。输出通道零的权重为 [4,−1],偏置为一,得到 1+8−3=6。输出通道一的权重为 [−2,5],偏置为 −1,得到 −1−4+15=10。共享累加器必须独立开始第二个输出,不能保留第一个结果。

输入 [1,2,3;4,5,6;7,8,9]、卷积核 [1,2;3,4] 的预期结果为 [37,47;67,77]。最先记录的乘积为 1,4,12,20,下一组为 2,6,15,24。检查一个手算位置;仅比较最终值可能掩盖相互抵消的错误。

将直接模型与结构独立的窗口块加点积模型比较。两者共享同一地址函数,可能共享同一错误。应结合独立结构与手算测试数据。保持随机种子可复现,保存失败张量。同时比较转换前累加器和最终输出编码,以定位数值故障。

model.mjs 接收 X[C][H][W] 和 W[M][C/G][R][S],隐含一个批次。它检查矩形张量、通道兼容性和分组,不导入框架模型。应使用不同值、负数和非对称权重,而不是全零测试数据。可与 ONNX Conv比较约定,同时记录教学模型的限制。

自己试试

输入 [2,3]、权重 [4,−1]、偏置为一时,如果每次输入通道迭代都加一次偏置,会得到什么错误结果?

阅读解释

正确结果为 1+8−3=6。重复加入偏置两次得到 8−3+2=7。应在通道归约之外初始化偏置。

你的选择适用于此浏览器,可随时在页脚更改。