传统神经网络与孪生神经网络在“训练阶段”的物理底层真相

一:输入阶段 在真实的物理内存里,权重表 $W$只有唯一的一套。 CPU 绝对不会傻到去复制两份一模一样的 $W$ 来浪费宝贵的显存。 那么,既然只有一套权重表 $W$,怎么做到“同时跑两张图”的呢? 传统网络: 跑法极其简单:1 张图片输入 $\rightarrow$ 前向计算 $\rightarrow$提取特征 $\rightarrow$ 结果。 孪生网络: 无论“先算 A 再算 B”还是“先算 B 再算 A”都不对,而是Batching(批处理)。 CPU 会在AB输入前,把 A 和 B 像双面胶一样“粘”在一起,叠成Batch Size = 2。然后一次性送进同一个网络做前向计算。 GPU在并行处理 A 和 B 两张图,A 和 B 都经过同一个网络、同一组权重 W(权重共享)。 二:末端输出到底是什么 无论是传统分类网络还是孪生网络,在主干特征提取阶段的末端,都会把输入图像编码为一个固定长度的向量(例如 512 维): $${f}\in \mathbb{R}^{512}$$ 这是一组浮点数(如 $[0.8,-1.2,3.4,\dots]$),可理解为图像在特征空间中的表示。 两类网络的关键差异,出现在这一步之后。 1)传统分类网络:从特征向量到类别分数 在传统识别模型中,512 维特征通常还要经过一个全连接分类层(Linear/FC): $logits = Wf + b,\quad logits \in \mathbb{R}^N$ 其中 \(N\) 是类别总数(如 10,000 人)。 这一步输出的是长度为 \(N\) 的logits(未归一化分数); 经过 Softmax 后得到每个类别的概率分布(总和为 1); 最终常用 argmax取最大概率对应的类别 ID,再由业务字典映射成人名/工号。 严格地说,模型本身输出的是数值向量,不直接输出“张三”这样的文本标签。 标签解释是后处理程序完成的。 ...

2026-02-21 · 2 min · wzy朔夜观星