想象你要把一家三口的全部家当搬进一套新公寓。衣柜有固定隔板、书桌只有六个抽屉、厨房吊柜进深有限——你不可能把冰箱塞进书柜,也不可能把被子叠进碗橱。你得先画出户型图,量好每个柜子的尺寸,然后决定:大衣挂起来、T恤叠起来、餐具分组装盒。这个“先规划、再动手”的过程,就是收纳的核心。 在 AI 硬件世界里,神经网络的权重就像这一箱箱的“家当”,忆阻器阵列(memristor crossbar)就是那套“新公寓”。忆阻器阵列映射(mapping)要回答的问题很简单:如何把几十亿个权重数字,合理分配到硬件网格的每个格子里,让计算又快又准、空间不浪费、坏格子不影响大局?这就是本文要讲的故事——从户型图、拆箱转方向,到衣柜分区、备用收纳盒,一步步把“搬新家”的学问讲透。

岗位关联

对 AI 从业者而言,理解阵列映射是走向存算一体芯片设计、AI 推理加速器部署和硬件编译器开发的必修课,它决定了算法能否真正高效落地到物理世界。

目录
  1. 可视化演示
  2. 映射任务概述:先看户型图再搬家
  3. 权重映射基础:拆箱、转方向、摆上架
  4. 阵列分区设计:衣柜分区与标签系统
  5. 冗余容错设计:备用收纳盒与临时调仓
  6. 精度面积权衡:装得满 vs 不挤坏
  7. 网络结构适配:不同物品不同收纳法
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示神经网络权重到忆阻器交叉bar阵列的完整映射过程:电导量化、差分对表示、权重分割与阵列分区容错。切换步骤查看各阶段,拖动滑块调节权重位宽。

本节配有交互动效(进入视口后自动加载,约 3KB)。

电导线性映射 归一化权重ŵ映射到器件电导范围[G_min, G_max] 量化到离散电导态,精度受器件位宽限制 G = G_min + ŵ(G_max - G_min) 权重数值空间到电导物理空间的非平凡转换

映射任务概述:先看户型图再搬家

搬家的第一步,不是拿起箱子就装,而是先拿到户型图。哪面墙能打柜子、哪个角落放冰箱、走廊宽度能不能过床垫——这些物理约束决定了你后续所有的收纳决策。同样,在把神经网络放进忆阻器阵列之前,必须先理解“新公寓”的结构:什么是忆阻器?什么是交叉阵列?为什么矩阵乘法能在这里完成?

忆阻器(memristor)是一种电阻值可变的器件,它的电导(电阻的倒数)可以代表神经网络里的权重。把许多忆阻器按照“横线和竖线交叉”的方式排列,就得到交叉阵列(crossbar):横线叫字线,竖线叫位线,每个交叉点就是一个忆阻器单元。当一个电压从某条字线输入时,电流会穿透该行所有忆阻器,在各自的位线上汇合——这个物理过程自动完成了乘加运算,也让权重和数据的“居住”方式不再依赖传统冯·诺依曼架构中搬运数据的卡车。

具体来说,给第 i 条字线施加与输入 $x_i$ 成正比的电压 $V_i$,忆阻器的电导 $G_{ij}$ 代表权重 $W_{ij}$,根据欧姆定律,流过单元的电流就是 $G_{ij} V_i$——这就是“乘”。而位线 j 上所有电流累加,就是“加”。所谓映射,就是给每个权重找到物理格子,使计算误差尽量小、面积占用尽量少、可靠性尽量高。

就像搬家前先读懂户型图,理解了交叉阵列的“房间结构”,我们才知道哪些“家具”能进、该怎么进。接下来要做的,就是打开箱子,琢磨每件物品的摆放姿势。

Ij=∑i=1nGijViI_j = \displaystyle\sum_{i=1}^{n} G_{ij} V_i
位线 j 上的总电流等于所有字线上电流的叠加结果,一次物理操作完成 n 次乘加。
  1. $G_{ij}$第 i 行第 j 列处忆阻器的电导值,映射时写入的是权重数值。
    GijG_{ij}
  2. $V_i$第 i 条字线上施加的输入电压,代表神经网络的一个输入 x。
    ViV_i
  3. 求和符号把 n 条字线流入位线 j 的电流全部加起来,对应神经网络中的累加。
    ∑i=1n\displaystyle\sum_{i=1}^{n}

权重映射基础:拆箱、转方向、摆上架

户型图看懂了,接下来开箱。搬家工人搬来一个巨大的书架,发现公寓门宽只有 80 厘米——怎么办?要么拆成两块搬进去再组装,要么把书架横过来侧着进。权重的搬运同样会遇到“门框”:每个忆阻器单元的电导范围有限,比如只能表示 0 到 1 之间的值,而你的权重矩阵里偏偏有个 3.7。

这就引出了权重分割(weight splitting)。当单个权重的绝对值超出单元可表示范围时,可以把它拆成多个子权重,分别存入多个单元,在计算时通过电流求和重新合并。比如 3.7 = 1.2 + 1.5 + 1.0,三个单元各存一部分,读出时电流叠加自然还原原始值。还有一种更常见的操作是矩阵转置(transpose):因为权重的行对应字线、列对应位线,而阵列的字线/位线物理位置常常需要交换,转置就能让“大件”转过方向重新对齐。

在数学上,神经网络线性层的计算是 y = Wx。映射时,权重的每个元素被转换为对应忆阻器的电导值,输入向量 x 转换为字线电压。权重矩阵的一行“横躺”在阵列的一行上,一列“竖挂”在一列上。为了让数据排布与物理结构一致,往往要先对权重做一次转置,再按行优先或列优先的顺序逐个写入。数据排列规则还会影响读写速度与功耗:把经常一起访问的权重放在相邻单元,能减少字线切换的开销,就像把常用调料放在灶台顺手的位置。

拆箱转方向再上架,这就是“收纳哲学”的第一课。不过,当家具太多、房间太少,光会摆还不够——你得把大房子划分成不同功能区。

yj=∑i=1nWjixiy_j = \displaystyle\sum_{i=1}^{n} W_{ji} x_i
输出向量 y 的第 j 个分量,是权重矩阵第 j 行与输入向量 x 的内积。映射到阵列后,这个内积由位线上的电流累加一次完成。
  1. $y_j$第 j 个输出神经元的激活值,映射后对应位线 j 上读出的电流。
    yjy_j
  2. $W_{ji}$权重矩阵第 j 行第 i 列的元素,映射时转换为单元电导。
    WjiW_{ji}
  3. $x_i$输入向量第 i 个分量,映射后转换为字线电压。
    xix_i
  4. 求和逻辑物理上由基尔霍夫电流定律在同一时刻自然完成,无需额外加法器。
    ∑i=1n\displaystyle\sum_{i=1}^{n}

阵列分区设计:衣柜分区与标签系统

搬进大平层后,你开始规划:玄关放鞋柜、主卧放衣柜、厨房放碗柜,不同功能区互不干扰。忆阻器阵列也是同理。一块物理上很大的阵列,如果所有权重一股脑塞进去,读写控制会混乱不堪。所以映射之前,工程师会先把阵列做物理分区(partitioning):把神经网络的输入层分到左上子阵列、隐藏层分到中间子阵列、输出层分到右下子阵列,各层各自为政。

分区不只是空间上的切分,还涉及多级存储单元(multi-level cell, MLC)的选用。好比衣柜抽屉,有的抽屉只有一层,一只鞋占一格(SLC,单电平单元,一个单元只存 1 比特);有的抽屉加了隔板,一只鞋盒能叠两双鞋(MLC,多电平单元,一个单元存多个比特)。MLC 能提高存储密度,但电导状态更多,精度和稳定性会打折扣。映射时,对精度敏感的权重层用 SLC,对容量要求高的层可以用 MLC。

分区粒度由网络结构决定:每个分区配独立的写驱动、读放大器和数模转换器,这就是外围电路配置(peripheral circuit)。分区的好处很多:各层并行计算、互不干扰;某个分区损坏,其他分区照常工作。但分区也带来面积开销——外围电路本身也要占地方。于是就有了面积利用率(array utilization)的概念:

衣柜分区的目的是让每件衣物都待在合适的位置,阵列分区则是让每层网络都有专属的“房间”。房间分好了,还得留意——万一哪个格子坏了怎么办?这就来到冗余容错的话题。

η=NusedNtotal×100%\eta = \dfrac{N_{\mathrm{used}}}{N_{\mathrm{total}}} \times 100\%
面积利用率 = 实际存放权重的单元数 ÷ 阵列总单元数。分区越多,保留给外围电路的面积越多,利用率往往越低。
  1. $N_{\mathrm{used}}$实际承载权重的忆阻器单元数量。
    NusedN_{\mathrm{used}}
  2. $N_{\mathrm{total}}$整个阵列的单元总数(含冗余单元和物理间隔)。
    NtotalN_{\mathrm{total}}
  3. $100\%$把比例换算成百分数,便于直观比较。
    ×100%\times 100\%

冗余容错设计:备用收纳盒与临时调仓

搬家时你总会多带几个空纸箱。为什么?因为路上可能压坏一个,或者突然发现某个箱子装不下。这跟忆阻器阵列的处境一模一样:芯片制造不是 100% 完美的,阵列中总会有一些单元因制造缺陷或使用损耗损坏,称为坏点(defective cell)。如果没有备用能力,一个坏点就可能让整块芯片报废。

工程师的解法是在阵列中预留冗余行和冗余列(redundant row/column)。就像收纳柜里空着的一排抽屉,平时不用,关键时刻顶上。映射的第一步往往是坏点检测:对每个单元写入参考值再读回,如果偏差超过阈值就标记为坏点。接下来的动态重映射(dynamic remapping)会自动绕开坏点:原本要写入坏点的权重,就近转移到冗余行或冗余列的空闲单元,并更新映射表,整个流程对上层算法透明。

冗余设计带来可靠性,但也产生额外成本。冗余单元越多,容错能力越强,面积利用率越低。两者的关系可以量化:

多带几个纸箱听起来笨,却是搬家顺利的保障。冗余容错让阵列在“坏了一部分”的情况下依然可靠工作,这正是工业级芯片能够规模化生产的关键。

Coverhead=NspareNtotalC_{\mathrm{overhead}} = \dfrac{N_{\mathrm{spare}}}{N_{\mathrm{total}}}
冗余开销 = 备用单元数 ÷ 总单元数。工业设计中冗余行列通常各占 1%~5%。
  1. $N_{\mathrm{spare}}$预留的冗余单元数量(冗余行与冗余列之和)。
    NspareN_{\mathrm{spare}}
  2. $N_{\mathrm{total}}$阵列总单元数。
    NtotalN_{\mathrm{total}}
  3. 比值意义开销越大,容错越强,但有效存放权重的面积越小。
    NspareNtotal\dfrac{N_{\mathrm{spare}}}{N_{\mathrm{total}}}

精度面积权衡:装得满 vs 不挤坏

收纳时你会遇到一个矛盾:柜子一共这么大,想装下全部家当,就得把每件物品挤压着放;可挤得太狠,衣服起皱、瓷器磕碰。映射中的一对核心矛盾正是计算精度(通过量化位宽体现)与面积利用率。位宽越大,每个权重所需的单元越多,面积占用越大;位宽越小,面积越省,但权重被量化后的误差越大。

设原始权重为 $W_{ij}$,量化后为 $Q(W_{ij})$,则最大量化误差:

更微妙的权衡藏在 MLC 与 SLC 之间:MLC 一个单元存多比特,密度高、面积省,但每个电平间隔窄,容易受噪声干扰;SLC 精度高但密度低。可扩展性分析(scalability)指出:阵列面积随单元数平方增长,良率却随面积指数下降——一块超大型阵列的良率可能只有小型阵列的几分之一。因此业界倾向“中等阵列 + 多芯片拼接”,而不是“一个大阵列装所有权重”。

收纳的智慧不是把柜子塞到爆,而是留出恰到好处的余量。映射的权衡艺术也一样:在精度、面积、良率三个目标之间找到平衡点,才能让整个系统稳定运转。

emax⁡=max⁡i,j∣Wij−Q(Wij)∣e_{\max} = \max_{i,j} \left| W_{ij} - Q(W_{ij}) \right|
量化误差衡量权重被“压扁”的程度。误差越大,模型精度损失越明显。
  1. $Q(W_{ij})$量化函数,把连续权重映射到有限个离散电导等级。
    Q(Wij)Q(W_{ij})
  2. 绝对值量化后的偏差不考虑方向,只关心大小。
    ∣Wij−Q(Wij)∣\left| W_{ij} - Q(W_{ij}) \right|
  3. max 遍历取所有权重中误差最大的一个作为最坏情况。
    max⁡i,j\max_{i,j}

网络结构适配:不同物品不同收纳法

搬家到最后你会发现,书要竖着排进书架,餐具要挂起来控水,乐器得躺平存放——没有一种万能摆放方法。神经网络的结构千差万别,映射策略也必须“看菜下饭”。

全连接网络(Fully Connected)的每一层本质就是一个矩阵乘法,映射最直接:权重矩阵的每一行对应阵列的一条字线,每一列对应一条位线,原样摆放即可。卷积网络(CNN)则不同。卷积核在输入特征图上滑动,同一个权重会被多个位置复用,如果直接映射,会产生大量重复存储。业界惯用手法是 im2col(image to column):把输入特征图按卷积核的感受野重新排列成矩阵,将卷积操作转化为一次大矩阵乘法,从而复用全连接层的成熟映射方案。

除卷积外,循环神经网络(RNN)需要反馈通路,映射时要求阵列支持权重原地更新;注意力机制(Transformer)涉及多个矩阵乘加,常拆成多个子阵列并行处理。优化方案对比显示:全连接映射简单但占用大,im2col 映射面积效率高但需要额外数据重排开销;对深度网络,还可以结合权重聚类、剪枝与映射联合优化,进一步压缩面积。

收纳是一门因物制宜的学问——书立着、衣叠着、碗挂着,每种东西都有最舒服的姿势。神经网络结构不同,映射策略也随之变化,但核心目标始终如一:让每一个权重都待在它最该待的格子里。

X′=im2col(X)\mathbf{X}' = \mathrm{im2col}(\mathbf{X})
im2col 把输入张量 X 展开成矩阵 X',之后卷积等价于 X' 与权重矩阵的一次乘法。
  1. $\mathbf{X}$原始输入特征图,是一个三维张量。
    X\mathbf{X}
  2. $\mathbf{X}'$展开后的二维矩阵,列数等于卷积窗口滑动的次数。
    X′\mathbf{X}'
  3. $\mathrm{im2col}$展开操作,本质上是把“滑动窗口”变成“规则矩阵”。
    im2col\mathrm{im2col}

AI 应用场景

存算一体AI推理芯片的EDA设计

阶段:芯片物理设计阶段(设计自动化工具链)

解决的问题:传统 EDA 工具只负责布局布线,不会考虑“权重应该放哪个格子”。芯片设计工程师拿到训练好的模型后,需要手工把每层权重分配到阵列,费时且易错。引入自动映射算法后,EDA 工具能自动完成权重分割、阵列分区、坏点规避,把开发周期从数周缩短到数小时。

具体案例:一家语音唤醒芯片创业公司,要在 1mm² 的芯片上集成 8 个 64×64 忆阻器阵列。工程师用自动映射工具,把三层全连接网络权重自动旋转、分割、分配到 8 个子阵列,并通过冗余映射绕过 3 个制造坏点,芯片良率从 61% 提升到 89%。

边缘AI推理引擎部署

阶段:模型部署与编译优化

解决的问题:智能摄像头、工业检测终端的内存和功耗受限,传统 GPU 方案功耗超标。将模型映射到忆阻器阵列后,乘加运算在模拟域一次完成,功耗可降低约两个数量级。

具体案例:某智能制造工厂的边缘缺陷检测设备,原方案用 FPGA 运行 YOLO-tiny 模型,功耗 12W。改用忆阻器阵列加速卡后,卷积层通过 im2col 展开映射到阵列,全连接层映射到独立分区,功耗降到 1.8W,吞吐量反而提升 40%。

云端大模型权重驻留优化

阶段:推理系统架构设计

解决的问题:大语言模型有数百亿参数,单块阵列根本放不下。需要把权重矩阵按层和注意力头分片,映射到多块阵列芯片,并设计芯片间的数据流。映射方案直接决定了访存带宽和计算单元的利用率。

具体案例:某云厂商在推理服务器中插入存算一体加速卡,将 Transformer 的 QKV 投影矩阵按注意力头拆分成 128 片,映射到 16 块阵列板卡上。通过动态重映射,运行中检测到 3 个单元退化后自动迁移权重,服务未中断,P95 延迟仅增加 2.1%。

Python 演示

python53 行
import numpy as np class MemristorMapper:    def __init__(self, rows, cols, ro=1, co=1):        self.rows = rows        self.cols = cols        self.ro = ro        self.co = co        self.free_rows = rows - ro        self.free_cols = cols - co        self.grid = np.zeros((rows, cols), dtype=float)        self.failures = set()        self.used_count = 0     def mark_failure(self, r, c):        self.failures.add((r, c))     def _find_slot(self, r, c):        while (r, c) in self.failures or r >= self.free_rows or c >= self.free_cols:            c += 1            if c >= self.free_cols:                c = 0                r += 1            if r >= self.free_rows:                raise RuntimeError('坏点过多,映射失败')        return r, c     def map_layer(self, weights):        m, n = weights.shape        if m > self.free_rows or n > self.free_cols:            raise ValueError('权重矩阵超出阵列可用区域')        for i in range(m):            for j in range(n):                r, c = self._find_slot(i, j)                self.grid[r, c] = weights[i, j]                self.used_count += 1        return f'映射完成:{m}x{n} 权重 -> 阵列 ({self.used_count}/{self.rows*self.cols} 单元)'     def utilization(self):        return self.used_count / (self.rows * self.cols) def demo():    np.random.seed(42)    arr = MemristorMapper(6, 6, ro=1, co=1)    arr.mark_failure(0, 1)    arr.mark_failure(2, 2)    w = np.random.rand(4, 4)    print(arr.map_layer(w))    print(f'面积利用率: {arr.utilization()*100:.2f}%')    print('坏点列表:', arr.failures) if __name__ == '__main__':    demo()
目的:模拟一个带冗余行列的忆阻器阵列,在存在坏点的情况下完成权重矩阵的自动映射,并计算面积利用率。
  1. self.failures = set()用集合记录坏点坐标,查重速度是 O(1),对应“坏点检测登记表”。
  2. def _find_slot(self, r, c)核心映射策略:从目标位置开始,遇到坏点或越界就往右移,移满一行换下一行,正是“动态重映射”的雏形。
  3. if m > self.free_rows or n > self.free_cols映射前检查:权重矩阵不能超过排除冗余后的可用区域,相当于“衣柜门框放不下书架就报错”。
  4. arr.mark_failure(0, 1)模拟制造缺陷:标记第 0 行第 1 列为坏点,后续映射会自动绕开。
  5. arr.utilization() * 100计算面积利用率百分数,反映阵列空间被有效利用的程度。

常见误区

误区“把权重矩阵直接复制到阵列上不就行了吗?矩阵什么样,阵列就什么样,像 Excel 表格复制粘贴一样简单。”

正解映射 ≠ 复制。权重矩阵是抽象的二维数组,阵列是带物理约束的硬件:字线/位线方向限制、电导范围限制、坏点回避、外围电路布局。映射要做的恰恰是“重新摆放”:转置、分割、旋转、绕行。就像搬家时,书架不能原样进门,得拆开再组装。

为何常见:人脑习惯把矩阵和网格看作同构,忽略了物理器件的不完美和约束条件。

误区“阵列做得越大,能装的权重越多,性能一定越强。”

正解大阵列良率呈指数下降(一颗灰尘可能报废整片)、导线寄生电阻导致远端单元读写误差大、功耗密度上升。业界方案是中等规模阵列 + 多芯片集成,而不是一味做大。好比房间太大,走两步才能拿到调料,做饭反而低效。

为何常见:把软件里“内存越大越好”的直觉搬到了硬件上,没考虑制造良率和物理信号完整性。

误区“冗余行和冗余列平时根本不用,纯属浪费面积,应该全部砍掉。”

正解冗余是芯片良率的“保险丝”。制造缺陷无法完全避免,有了冗余 + 重映射,一块含几个坏点的芯片能降级为良品使用。工业上冗余的收益(良率提升)远超面积成本。就像搬家多带几个空纸箱,看似占地方,关键时刻能救急。

为何常见:只看到面积数字,没算过经济账:报废一颗芯片的损失比多留 5% 面积的代价大得多。

误区“只要把权重量化位宽设大一点,模型精度就一定能保住。”

正解阵列的精度受多种非理想效应影响:电导漂移、线阻压降、单元间串扰、温度漂移。映射布局也会影响精度:权重放在远离读写电路的位置,线阻误差更大。量化只是误差来源之一,而不是全部。

为何常见:把算法仿真的量化误差等同于物理实现的全部误差来源,忽略了真实器件行为。

误区“反正都是矩阵,卷积、全连接、注意力不都是算乘法吗,直接塞进阵列就行。”

正解卷积的权重复用、RNN 的反馈回路、注意力的多头并行,各有不同的数据流特征。直接映射会造成大量重复存储或读写冲突。需要 im2col、时间展开、多头分片等预处理。

为何常见:只看到“乘法”的共性,忽略了数据流动方式的差异。

面试题

Q1. 忆阻器阵列中“乘”操作依赖的物理定律是?

单选题 · easy

  • A.牛顿定律
  • B.欧姆定律← 正确答案
  • C.库仑定律
  • D.楞次定律

答案:B。忆阻器的电流 I = V/R = G×V,电导 G 代表权重,电压 V 代表输入,乘积天然完成。基尔霍夫定律负责电流的“加”,欧姆定律负责“乘”。其余选项与电流-电压关系无直接联系。

Q2. 权重分割主要解决的场景是?

单选题 · easy

  • A.网络层数太多难以训练
  • B.训练数据集规模过于庞大
  • C.权重值超出单元表示范围← 正确答案
  • D.反向传播时梯度发生爆炸

答案:C。忆阻器单元的电导范围有限,当单个权重的绝对值超出可表示范围时,需要拆成多个子权重存入不同单元,计算时通过电流求和合并。层数、数据集、梯度问题与权重分割无直接关系。

Q3. 关于 SLC 与 MLC,正确的说法是?

单选题 · mid

  • A.MLC 比 SLC 精度更高
  • B.SLC 单比特精度高但容量小← 正确答案
  • C.SLC 多比特可存更多层
  • D.两者存储精度完全相同

答案:B。SLC 一个单元只存 1 比特,电平间距大,抗噪强、精度高,但容量小;MLC 一个单元存多比特,密度高但精度低。MLC 精度高于 SLC 和两者精度相同的说法都错误。

Q4. 冗余列在映射中的主要作用是?

单选题 · mid

  • A.加快矩阵转置
  • B.提升电压范围
  • C.替换坏列并重映射← 正确答案
  • D.降低功耗开销

答案:C。冗余列是预留的备用列,当某列出现坏点时,动态重映射把该列权重迁移到冗余列。它不参与矩阵转置、不改变电压范围,也不直接降低功耗,而是提升容错能力。

Q5. 映射过程中需要权衡的指标包括?

多选题 · mid

  • A.计算精度最高优先← 正确答案
  • B.面积利用率提升← 正确答案
  • C.容错能力增强← 正确答案
  • D.阵列规模无限扩大

答案:ABC。精度、面积、容错是映射的三大目标,需全局权衡。阵列规模无限扩大是错误选项:大阵列良率下降、寄生效应严重,不能无限制扩大。

Q6. 卷积层映射到忆阻器阵列常用的预处理方法是?

单选题 · hard

  • A.直接堆叠卷积核
  • B.逐通道独立映射
  • C.随机排列所有输入
  • D.im2col 矩阵展开← 正确答案

答案:D。im2col 把输入特征图按卷积核感受野展开成矩阵,使卷积等价于一次大矩阵乘法,从而复用全连接层的成熟映射方案。直接堆叠或随机排列会导致数据流混乱。

Q7. 关于面积利用率与可扩展性,正确的结论有?

多选题 · hard

  • A.冗余设计会降低面积利用率← 正确答案
  • B.阵列扩大良率随之下降← 正确答案
  • C.提高利用率必然降低成本
  • D.可扩展性仅由工艺尺寸决定

答案:AB。冗余单元占用面积,确实降低利用率;阵列越大良率指数下降。但提高利用率不一定降低成本——挤太满可能导致精度下降、良率受损。可扩展性还受映射算法、散热、寄生等多因素制约。

Q8. 动态重映射的核心流程是?

单选题 · easy

  • A.重新训练整个网络
  • B.检测坏点并迁移权重← 正确答案
  • C.增大输入电压幅度
  • D.更换更粗导线材料

答案:B。动态重映射 = 检测坏点 + 绕开坏点 + 更新映射表。重新训练是软件层手段,增大电压或换导线属于硬件改动,都不是动态重映射的流程。

Q9. 权重值映射到忆阻器时,最终存储的物理量是?

单选题 · easy

  • A.电压幅度
  • B.电荷总量
  • C.磁通密度
  • D.电导值← 正确答案

答案:D。忆阻器通过电导值存储权重,电导越高代表权重越大。输入以电压形式施加,输出以电流形式读出,但存储介质本身记录的是电导状态。

Q10. 全连接层映射到忆阻器阵列时,正确的描述有?

多选题 · mid

  • A.输入行经字线施加电压← 正确答案
  • B.输出列电流自然累加← 正确答案
  • C.权重转换为电导存储← 正确答案
  • D.需要额外增设数字加法器

答案:ABC。输入 x 映射为字线电压,权重 W 映射为电导,输出 y 由位线电流累加得到——模拟域已用基尔霍夫定律完成加法,无需额外数字加法器。D 是常见误解。