哪些python深度学习库在运行时编译?

问题描述 投票:0回答:1

我试图在python中围绕C优化代码。我已经阅读了几次,因为python通过C扩展实现了高速计算。换句话说,每当我使用像numpy这样的库时,它基本上都会调用一个C扩展来计算结果并返回它。

C-extensions using numpy

假设我想使用np.add(x,y)添加两个数字。如果我理解正确,像numpy这样的库不会编译python代码,而是已经附带了可执行文件,只需要取值x和y并返回结果。那是对的吗?

Theano, Tensorflow, and PyTorch

特别是,我想知道深度学习库是否也是如此。根据Theano的官方文档,它需要g ++和gcc(至少强烈推荐它们)。这是否意味着Theano将在python脚本的运行时编译C(或C ++)代码?如果是这样,PyTorch和Tensorflow是否相同?

我希望有人能在这里解决我的困惑!非常感谢!

python compilation runtime pytorch theano
1个回答
1
投票

python中的C扩展

numpy经常使用C-extensions。例如,您可以在这里查看sort()函数[1]的C实现[2]。

[1] https://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html

[2] https://github.com/numpy/numpy/blob/master/numpy/core/src/npysort/quicksort.c.src

深度学习库

深度学习库对其后端的大部分使用C扩展,以及CUDA和CUDNN。代码可以在运行时编译:

[3] http://deeplearning.net/software/theano/extending/pipeline.html#compilation-of-the-computation-graph

[4] https://www.tensorflow.org/xla/jit

[5] https://pytorch.org/blog/the-road-to-1_0/#production--pain-for-researchers

为了回答你的问题,theano将在python脚本的运行时编译C / C ++代码。 theano在运行时的图形编译时间非常慢:我建议你专注于pytorchtensorflow而不是theano

如果您不熟悉深度学习,也可以快速查看[6]。

[6] https://github.com/google/jax

© www.soinside.com 2019 - 2024. All rights reserved.