分批循环遍历数组 Python 以创建新数组而不覆盖
Batch-wise loop over array Python to create new array without overwriting
我想迭代形状为 (1134500, 1, 50) 的 3d 数组(序列)
array([[[1000, 1000, 1000, ..., 1005, 1005, 1005]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]],
...,
[[1000, 1000, 1000, ..., 1005, 1005, 1004]],
[[1000, 1000, 1000, ..., 1005, 1005, 1005]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]]], dtype=int32)
为此,我使用了以下 for 循环,除了覆盖之前批处理的结果外,它运行良好:
batchsize = 500
for i in range(0, sequences.shape[0], batchsize):
batch = sequences[i:i+batchsize]
relevances = lrp_model.lrp(batch)
因此,我想要一个形状为 (1134500, 1, 50) 的数组(相关性),但我得到一个形状为 (500, 1, 50) 的数组(相关性)
有人可以告诉我出了什么问题吗?
如果您想保存相关性,也许
batchsize = 500
relevances = np.zeros(sequences.shape)
for i in range(0, sequences.shape[0], batchsize):
batch = sequences[i:i+batchsize]
relevances[i:i+batchsize, :, :] = lrp_model.lrp(batch)
我想迭代形状为 (1134500, 1, 50) 的 3d 数组(序列)
array([[[1000, 1000, 1000, ..., 1005, 1005, 1005]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]],
...,
[[1000, 1000, 1000, ..., 1005, 1005, 1004]],
[[1000, 1000, 1000, ..., 1005, 1005, 1005]],
[[1000, 1000, 1000, ..., 1004, 1005, 1004]]], dtype=int32)
为此,我使用了以下 for 循环,除了覆盖之前批处理的结果外,它运行良好:
batchsize = 500
for i in range(0, sequences.shape[0], batchsize):
batch = sequences[i:i+batchsize]
relevances = lrp_model.lrp(batch)
因此,我想要一个形状为 (1134500, 1, 50) 的数组(相关性),但我得到一个形状为 (500, 1, 50) 的数组(相关性) 有人可以告诉我出了什么问题吗?
如果您想保存相关性,也许
batchsize = 500
relevances = np.zeros(sequences.shape)
for i in range(0, sequences.shape[0], batchsize):
batch = sequences[i:i+batchsize]
relevances[i:i+batchsize, :, :] = lrp_model.lrp(batch)