[openai/whisper]重构:PyTorchInference 初始化

2024-02-05 970 views
3

在此版本中,我通过将同一方法中的两个循环合并为一个循环来修改代码。这一增强提高了效率。

回答

8

来源:在梦中向我透露

抛开笑话不谈,Python 中的列表推导式更快,除非迭代器成本很高,否则我怀疑它会更快

5

你好@ExtReMLapin,我很感激你的问题。虽然列表推导式在 Python 中速度更快,但我将两个循环合并为一个循环,以将时间复杂度从 O(2) 提高到 O(1)。这应该显着减少开销并提高性能,尤其是在输入较大的情况下。谢谢 :)

6

@arjun-234 您的代码缺少另一件事可能会使其比仅使用列表理解慢。

基本上是这样的:

arr = [0] * length
for i in range(length):
    arr[i] = input[i]

比这个更快:

arr = []
for i in range(length):
    arr.append(input[i])

但列表理解仍然是其中最快的。不仅如此,它看起来也更干净?。

0

问候@twoal,是的,你是对的,列表理解总是更快,但特别是对于较大的输入,更少的迭代总是好的,这可以提高时间复杂度方面的性能。谢谢 :)