Я пытаюсь обернуть голову вокруг C-оптимизированного кода в Python.Я уже пару раз читал, что python достигает высокоскоростных вычислений через C-расширения.Другими словами, всякий раз, когда я работаю с такими библиотеками, как numpy, он обычно вызывает C-расширение, которое вычисляет результат и возвращает его.
C-extension с использованием numpy
Скажем, я хочу добавитьдва числа, используя np.add(x,y)
.Если я правильно понимаю, библиотеки, такие как numpy, не компилируют код python, но вместо этого уже содержат исполняемые файлы, которые просто примут значения x и y и вернут результат.Это правильно?
Theano, Tensorflow и PyTorch
В частности, мне интересно, верно ли это и для библиотек глубокого обучения.Согласно официальной документации Theano, для этого требуются g ++ и gcc (по крайней мере, они настоятельно рекомендуются).Означает ли это, что Theano скомпилирует код C (или C ++) во время выполнения скрипта python?Если да, то же самое для PyTorch и Tensorflow?
Я надеюсь, что кто-то может решить мою путаницу здесь!Большое спасибо!