【发布时间】:2019-11-14 17:01:18
【问题描述】:
我对 3d 数组数据有回归问题。数组的大小是 (350, 350, 50) 我需要对每个像素做回归处理;例如,对每个 (1, 1, 50) 数组进行回归,然后重复 350 x 350 次。
我用 Numpy 编写了我的代码,它在每个过程中运行。
row, col, depth = image_sequence.shape
for i in range(0, row):
for j in range(0, col):
Ytrain = image_sequence[i, j, :]
new_stack[i,j,:] = regression_process(Ytrain)
“行”是 350
'col' 是 350
在我的推断中,每个序列的计算时间需要 5 秒。 这意味着由于它应该被计算为 350x350 序列,它会在大约 7 天后完成。
我想知道如何优化这个过程并提前完成它。
我认为这与一些并行处理有关,但我不习惯。
【问题讨论】:
-
假设
regression_process确实是一个 5s-per-call 的瓶颈,没有改善的希望,那么它就是并行处理。在这种情况下,stackoverflow.com/questions/4682429/parfor-for-python 是重复的,但可以说没有给出直接的答案。 -
如果你的函数
regression_process需要 5sec 并且你需要调用它 350x350 次,那么你需要优化这个特定的函数。
标签: python numpy optimization