哪些python深度学习库在运行时编译?
我正试图用python编写C优化代码。我已经读过好几遍了,python通过C扩展实现了高速计算。换句话说,每当我使用numpy之类的库时,它基本上调用一个C扩展来计算结果并返回结果 使用numpy的C扩展 假设我想用哪些python深度学习库在运行时编译?,python,compilation,runtime,pytorch,theano,Python,Compilation,Runtime,Pytorch,Theano,我正试图用python编写C优化代码。我已经读过好几遍了,python通过C扩展实现了高速计算。换句话说,每当我使用numpy之类的库时,它基本上调用一个C扩展来计算结果并返回结果 使用numpy的C扩展 假设我想用np添加两个数字。添加(x,y)。如果我理解正确,像numpy这样的库不会编译python代码,而是已经提供了可执行文件,这些可执行文件将只接受值x和y并返回结果。对吗 Theano、Tensorflow和PyTorch 特别是,我想知道这是否也适用于深度学习图书馆。根据Theano
np添加两个数字。添加(x,y)
。如果我理解正确,像numpy这样的库不会编译python代码,而是已经提供了可执行文件,这些可执行文件将只接受值x和y并返回结果。对吗
Theano、Tensorflow和PyTorch
特别是,我想知道这是否也适用于深度学习图书馆。根据Theano的官方文档,它需要g++和gcc(至少强烈推荐)。这是否意味着Theano将在python脚本的运行时编译C(或C++)代码?如果是,PyTorch和Tensorflow是否相同
我希望有人能在这里解决我的困惑!非常感谢 python中的C扩展
numpy
大量使用C扩展。例如,您可以在这里查看sort()函数[1]的C实现[2]
[1]
[2]
深度学习图书馆
深度学习库在其后端的大部分使用C扩展,以及CUDA和CUDNN。可以在运行时编译代码:
[3]
[4]
[5]
为了回答您的问题,theano
将在python脚本运行时编译C/C++代码。对于theano
,运行时的图形编译时间非常慢:我建议您关注pytorch
或tensorflow
,而不是theano
如果你是深度学习新手,你也可以快速浏览一下[6]
[6] 非常酷,非常感谢!这是否意味着PyTorch或Tensorflow根本不在运行时编译代码?或者仅仅是图形编译要快得多?他们都在运行时编译一些代码:参见第60页:关于无图形编译时间,我的答案完全基于我的个人经验。不过,我在网上找不到任何包括theano和其他DL库的最新基准测试。请记住,theano开发自2017年起就停止了:参见第12页:它还说“大型模型的[theano]编译时间可能是一个巨大的痛苦”