我正在遍历一些输入批次并生成具有形状(BatchSize,X,Y)的结果。 BatchSize
不一定与我遍历批次相同。我想返回一个单一的输出,它是批次维度上结果的串联版本。在NumPy中最优雅的方法是什么?
我不太担心性能,而是处理累积结果数组的多维性。
答案 0 :(得分:1)
假设您有足够的内存来保存所有结果,一个好的解决方案是简单地预分配内存:
result = np.empty(OUTPUT_SHAPE)
i=0
while i < input_tensor.shape[0]:
batch_size = get_batch_size(i)
result[i:i+batch_size] = deal_with_batch(input_tensor[i:i+batch_size])
i += batch_size
答案 1 :(得分:0)
The answer by @Scott是正确的。但是,我一直在寻找我发现的增量版本:
定义results = np.empty((0, output_shape))
,然后使用results = np.concatenate((results, some_func(x)))
我不确定我应该如何考虑numpy中大小为0的维,但是它可以工作。