You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python按批次遍历3D数组生成新数组时批次结果被覆盖问题求解

问题原因

你在循环中每次都直接对relevances变量执行重新赋值操作,没有存储前序批次的计算结果,因此循环结束后变量中仅保留最后一批的输出,形状和单批次大小一致。

解决方案

推荐优先使用预分配数组的方案,内存和计算效率更高:

import numpy as np

batchsize = 500
# 预分配和输入数组形状、数据类型完全一致的空结果数组
relevances = np.empty_like(sequences)

for i in range(0, sequences.shape[0], batchsize):
    batch = sequences[i:i+batchsize]
    # 将当前批次计算结果写入对应索引位置
    relevances[i:i+batchsize] = lrp_model.lrp(batch)

如果后续有输出形状动态变化的需求,也可以用列表暂存后拼接的方案:

import numpy as np

batchsize = 500
batch_res = []

for i in range(0, sequences.shape[0], batchsize):
    batch = sequences[i:i+batchsize]
    batch_res.append(lrp_model.lrp(batch))

# 沿第0维拼接所有批次结果,得到最终完整数组
relevances = np.concatenate(batch_res, axis=0)

内容的提问来源于stack exchange,提问作者Oldbighorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:24:06