Tensorflow PyInstaller是否包括CUDA

Tensorflow PyInstaller是否包括CUDA,tensorflow,cuda,pyinstaller,cudnn,Tensorflow,Cuda,Pyinstaller,Cudnn,我正在编写一个Python脚本(我使用Python 3.7.3),该脚本使用tensorflow gpu(1.14.0)并使用PyInstaller 3.5将该脚本转换为可执行文件。我使用的是CUDA 10.0和cuDNN 7.6.1,我的图形卡是NVIDIA GeForce GTX 960M。我最近卸载了CUDA以测试Python脚本的可执行文件是否仍然运行,令人惊讶的是,它仍然通过GPU运行,这在我现在直接运行Python脚本时不起作用 我的问题是,这个可执行文件是否可以在没有CUDA工具包

我正在编写一个Python脚本(我使用Python 3.7.3),该脚本使用tensorflow gpu(1.14.0)并使用PyInstaller 3.5将该脚本转换为可执行文件。我使用的是CUDA 10.0和cuDNN 7.6.1,我的图形卡是NVIDIA GeForce GTX 960M。我最近卸载了CUDA以测试Python脚本的可执行文件是否仍然运行,令人惊讶的是,它仍然通过GPU运行,这在我现在直接运行Python脚本时不起作用

我的问题是,这个可执行文件是否可以在没有CUDA工具包但有CUDA功能图形卡的系统上运行

根据PyInstaller的说法,安装程序将创建并存储Python代码在构建单个文件可执行文件时所依赖的所有依赖外部库的私有副本


因此,可以安全地假设,无论CUDA toolkit的安装状态如何,您的可执行文件都会运行,因为它在内部拥有必要的CUDA库的完整私有副本,在可执行文件运行时使用这些库。

什么是“没有CUDA”的意思?没有CUDA工具包?没有CUDA驱动程序?我的印象是CUDA工具包包括CUDA驱动程序?无论如何,我说的是工具箱。在某些平台上确实如此,但卸载工具箱不会删除驱动程序。在这种情况下,我猜PyInstaller会生成静态链接的可执行代码(CUDA在大多数平台上也支持该代码),我正在Windows 10上运行所有程序,并通过nvcc-V命令验证CUDA toolkit的正确卸载。由于我依赖tensorflow gpu的Python脚本在卸载后不再运行,我是否可以假设驱动程序也已卸载?否。卸载工具包会删除Python脚本所依赖的动态库,从而破坏它们。但是您的可执行文件可能链接了所有CUDA库的静态版本,因此不受影响。我从未听说过PyInstaller,也不知道它是如何工作的,但这是我能想到的唯一解释。