我已经在cuda 7.5和8.0上尝试过tensorflow,没有cudnn(我的GPU很老,cudnn不支持它).
当我执行时device_lib.list_local_devices(),输出中没有gpu.Theano看到了我的gpu,并且运行良好,/ usr/share/cuda/samples中的示例也可以正常工作.
我通过pip install安装了tensorflow.我的gpu太老了,不支持吗?gtx 460
kso*_*all 17
我在jupyter笔记本中遇到过同样的问题.这可能很容易解决.
$ pip uninstall tensorflow
$ pip install tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)
您可以检查它是否有效:
tf.test.gpu_device_name()
Run Code Online (Sandbox Code Playgroud)
And*_*wPt 17
概括:
*来源 - https://www.tensorflow.org/install/gpu
详细说明:
检查 tensorflow 是否看到您的 GPU(可选)
from tensorflow.python.client import device_lib
def get_available_devices():
local_device_protos = device_lib.list_local_devices()
return [x.name for x in local_device_protos]
print(get_available_devices())
# my output was => ['/device:CPU:0']
# good output must be => ['/device:CPU:0', '/device:GPU:0']
Run Code Online (Sandbox Code Playgroud)检查您的卡是否可以使用 tensorflow(可选)
tensorflow 需要 Compute Capability 3.5 或更高版本。(https://www.tensorflow.org/install/gpu#hardware_requirements)
找到您需要的 CUDA Toolkit 和 cuDNN SDK 版本
a) 找到你的 tf 版本
import sys
print (sys.version)
# 3.6.4 |Anaconda custom (64-bit)| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)]
import tensorflow as tf
print(tf.__version__)
# my output was => 1.13.1
Run Code Online (Sandbox Code Playgroud)
b) 为您的 tf 版本找到正确版本的 CUDA Toolkit 和 cuDNN SDK
https://www.tensorflow.org/install/source#linux
* it is written for linux, but worked in my case
see, that tensorflow_gpu-1.13.1 needs: CUDA Toolkit v10.0, cuDNN SDK v7.4
Run Code Online (Sandbox Code Playgroud)安装 CUDA 工具包
a) 安装 CUDA Toolkit 10.0
https://developer.nvidia.com/cuda-toolkit-archive
select: CUDA Toolkit 10.0 and download base installer (2 GB)
installation settings: select only CUDA
(my installation path was: D:\Programs\x64\Nvidia\Cuda_v_10_0\Development)
Run Code Online (Sandbox Code Playgroud)
b) 添加环境变量:
system variables / path must have:
D:\Programs\x64\Nvidia\Cuda_v_10_0\Development\bin
D:\Programs\x64\Nvidia\Cuda_v_10_0\Development\libnvvp
D:\Programs\x64\Nvidia\Cuda_v_10_0\Development\extras\CUPTI\libx64
D:\Programs\x64\Nvidia\Cuda_v_10_0\Development\include
Run Code Online (Sandbox Code Playgroud)安装cuDNN SDK
a) 下载cuDNN SDK v7.4
https://developer.nvidia.com/rdp/cudnn-archive (needs registration, but it is simple)
select "Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0"
Run Code Online (Sandbox Code Playgroud)
b) 将“bin”文件夹的路径添加到“环境变量/系统变量/路径”中:
D:\Programs\x64\Nvidia\cudnn_for_cuda_10_0\bin
Run Code Online (Sandbox Code Playgroud)pip 卸载 tensorflow pip 安装 tensorflow-gpu
检查 tensorflow 是否看到您的 GPU
- restart your PC
- print(get_available_devices())
- # now this code should return => ['/device:CPU:0', '/device:GPU:0']
Run Code Online (Sandbox Code Playgroud)小智 10
如果您使用的是conda,则可能已安装了tensorflow的cpu版本。检查环境的软件包列表(conda list),以查看是否是这种情况。如果是这样,请使用删除软件包conda remove tensorflow并安装keras-gpu(conda install -c anaconda keras-gpu.。这将安装在GPU中运行机器学习代码所需的所有内容。
PS您应该首先检查是否已使用正确安装了驱动程序nvidia-smi。默认情况下,它不在您的PATH中,因此您可能还需要将文件夹添加到您的路径中。.exe文件位于C:\Program Files\NVIDIA Corporation\NVSMI
Laz*_*vić 10
我遇到了问题,因为我没有指定Tensorflow的版本,所以我的版本是2.11。经过几个小时后,我发现安装指南中描述了我的问题:
注意:TensorFlow 2.10是在本机 Windows 上支持 GPU 的最后一个 TensorFlow 版本。从TensorFlow 2.11开始,您需要在 WSL2 中安装 TensorFlow,或者安装 tensorflow-cpu,并且可以选择尝试 TensorFlow-DirectML-Plugin
在此之前,我阅读了这个问题和类似问题的大部分答案。我遵循@AndrewPt 的回答。我已经安装了CUDA但更新了版本以防万一,安装了cudNN并重新启动了计算机。
对我来说最简单的解决方案是降级到 2.10(您可以尝试安装指南中提到的不同选项)。我首先卸载了所有这些软件包(可能没有必要,但我不想看到 pip 如何在凌晨 2 点搞乱版本):
pip uninstall keras
pip uninstall tensorflow-io-gcs-filesystem
pip uninstall tensorflow-estimator
pip uninstall tensorflow
pip uninstall Keras-Preprocessing
pip uninstall tensorflow-intel
Run Code Online (Sandbox Code Playgroud)
因为我只想要旧版本所需的软件包,而没有对2.11 版本的所有所需软件包执行此操作。之后我安装了tensorflow 2.10:
pip install tensorflow<2.11
Run Code Online (Sandbox Code Playgroud)
它起作用了。
我使用此代码来检查 GPU 是否可见:
pip uninstall keras
pip uninstall tensorflow-io-gcs-filesystem
pip uninstall tensorflow-estimator
pip uninstall tensorflow
pip uninstall Keras-Preprocessing
pip uninstall tensorflow-intel
Run Code Online (Sandbox Code Playgroud)
小智 9
当我查找您的GPU时,我看到它仅支持CUDA Compute Capability 2.1。(可以通过https://developer.nvidia.com/cuda-gpus进行检查。)不幸的是,TensorFlow需要具有最低CUDA计算能力3.0的GPU。 https://www.tensorflow.org/get_started/os_setup#optional_install_cuda_gpus_on_linux
您可能会看到来自TensorFlow的一些日志正在检查您的GPU,但最终该库将避免使用不受支持的GPU。
因此,截至 2022 年 4 月,该tensorflow软件包包含 CPU 和 GPU 版本。要安装 GPU 版本,请搜索以查看可用的内容:
\xce\xbb conda search tensorflow\nLoading channels: done\n# Name Version Build Channel\ntensorflow 0.12.1 py35_1 conda-forge\ntensorflow 0.12.1 py35_2 conda-forge\ntensorflow 1.0.0 py35_0 conda-forge\n\xe2\x80\xa6\ntensorflow 2.5.0 mkl_py39h1fa1df6_0 pkgs/main\ntensorflow 2.6.0 eigen_py37h37bbdb1_0 pkgs/main\ntensorflow 2.6.0 eigen_py38h63d3545_0 pkgs/main\ntensorflow 2.6.0 eigen_py39h855417c_0 pkgs/main\ntensorflow 2.6.0 gpu_py37h3e8f0e3_0 pkgs/main\ntensorflow 2.6.0 gpu_py38hc0e8100_0 pkgs/main\ntensorflow 2.6.0 gpu_py39he88c5ba_0 pkgs/main\ntensorflow 2.6.0 mkl_py37h9623b36_0 pkgs/main\ntensorflow 2.6.0 mkl_py38hdc16138_0 pkgs/main\ntensorflow 2.6.0 mkl_py39h31650da_0 pkgs/main\nRun Code Online (Sandbox Code Playgroud)\n您可以看到 TF 2.6.0 的版本支持 Python 3.7、3.8 和 3.9,并且是为MKL(Intel CPU)、Eigen或 GPU 构建的。
\n要缩小范围,您可以在搜索中使用通配符。这将找到为 GPU 构建的任何 Tensorflow 2.x 版本,例如:
\n\xce\xbb conda search tensorflow=2*=gpu*\nLoading channels: done\n# Name Version Build Channel\ntensorflow 2.0.0 gpu_py36hfdd5754_0 pkgs/main\ntensorflow 2.0.0 gpu_py37h57d29ca_0 pkgs/main\ntensorflow 2.1.0 gpu_py36h3346743_0 pkgs/main\ntensorflow 2.1.0 gpu_py37h7db9008_0 pkgs/main\ntensorflow 2.5.0 gpu_py37h23de114_0 pkgs/main\ntensorflow 2.5.0 gpu_py38h8e8c102_0 pkgs/main\ntensorflow 2.5.0 gpu_py39h7dc34a2_0 pkgs/main\ntensorflow 2.6.0 gpu_py37h3e8f0e3_0 pkgs/main\ntensorflow 2.6.0 gpu_py38hc0e8100_0 pkgs/main\ntensorflow 2.6.0 gpu_py39he88c5ba_0 pkgs/main\nRun Code Online (Sandbox Code Playgroud)\n要在空环境中安装特定版本,您可以使用如下命令:
\n\xce\xbb conda activate tf\n\n(tf) \xce\xbb conda install tensorflow=2.6.0=gpu_py39he88c5ba_0\n\n\xe2\x80\xa6\n\nThe following NEW packages will be INSTALLED:\n\n _tflow_select pkgs/main/win-64::_tflow_select-2.1.0-gpu\n \xe2\x80\xa6\n cudatoolkit pkgs/main/win-64::cudatoolkit-11.3.1-h59b6b97_2\n cudnn pkgs/main/win-64::cudnn-8.2.1-cuda11.3_0\n \xe2\x80\xa6\n tensorflow pkgs/main/win-64::tensorflow-2.6.0-gpu_py39he88c5ba_0\n tensorflow-base pkgs/main/win-64::tensorflow-base-2.6.0-gpu_py39hb3da07e_0\n \xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n如您所见,如果您安装 GPU 版本,它也会自动安装兼容包cudatoolkit和cudnn软件包。您不需要手动检查版本兼容性,或者从 Nvidia 网站手动下载几 GB,或者注册为开发人员,正如其他答案或官方网站上所说的那样。
安装后,通过运行以下命令确认其工作正常并且可以看到 GPU:
\n\xce\xbb python\nPython 3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32\nType "help", "copyright", "credits" or "license" for more information.\n>>> import tensorflow as tf\n>>> tf.__version__\n\'2.6.0\'\n>>> tf.config.list_physical_devices()\n[PhysicalDevice(name=\'/physical_device:CPU:0\', device_type=\'CPU\'), PhysicalDevice(name=\'/physical_device:GPU:0\', device_type=\'GPU\')]\nRun Code Online (Sandbox Code Playgroud)\n然而,让 conda 安装 GPU 版本和您想要使用的其他软件包是另一回事,因为对我来说有很多软件包不兼容。我认为您能做的最好的事情就是使用通配符指定安装标准并祈祷。
\n这会尝试安装为 GPU 构建且具有与 Spyder 和 matplotlib 的依赖项兼容的依赖项的任何TF 2.x 版本,例如:
\n\xce\xbb conda install tensorflow=2*=gpu* spyder matplotlib\nRun Code Online (Sandbox Code Playgroud)\n对我来说,这最终安装了两年前的 GPU 版本的 TensorFlow:
\n matplotlib pkgs/main/win-64::matplotlib-3.5.1-py37haa95532_1\n spyder pkgs/main/win-64::spyder-5.1.5-py37haa95532_1\n tensorflow pkgs/main/win-64::tensorflow-2.1.0-gpu_py37h7db9008_0\nRun Code Online (Sandbox Code Playgroud)\n我以前曾使用过该tensorflow-gpu软件包,但现在不再起作用了。conda 通常会一直努力寻找要安装的兼容包,即使安装了它,它实际上也没有安装 GPU 版本的 Tensorflow或CUDA 依赖项:
\xce\xbb conda list\n\xe2\x80\xa6\ncookiecutter 1.7.2 pyhd3eb1b0_0\ncryptography 3.4.8 py38h71e12ea_0\ncycler 0.11.0 pyhd3eb1b0_0\ndataclasses 0.8 pyh6d0b6a4_7\n\xe2\x80\xa6\ntensorflow 2.3.0 mkl_py38h8557ec7_0\ntensorflow-base 2.3.0 eigen_py38h75a453f_0\ntensorflow-estimator 2.6.0 pyh7b7c402_0\ntensorflow-gpu 2.3.0 he13fc11_0\nRun Code Online (Sandbox Code Playgroud)\n
小智 6
以下对我有用,hp 笔记本电脑。我有一个 Cuda Compute 功能(版本)3.0 兼容的 Nvidia 卡。Windows 7的。
pip3.6.exe uninstall tensorflow-gpu
pip3.6.exe uninstall tensorflow-gpu
pip3.6.exe install tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)