Tensorflow2.0 GPU版本安装(CUDA10.0 + cuDNN7.5 + Tensorflow2.0 Alpha)

本文详述了TensorFlow 2.0 Alpha版本的GPU环境配置过程,包括CUDA、cuDNN的安装与验证,以及TensorFlow 2.0 GPU版本的安装步骤。适用于希望快速上手深度学习的初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本人小白一名,总结了一些自己的操作经验,仅供参考)


前段时间Tensorflow 2.0 Alpha版本发布,作为刚入门深度学习的小白之前没有学过 Tensorflow1.x 系列,只学过一些keras,也懒得再学习 Tensorflow1.x 系列了,直接平滑过渡到 Tensorflow 2.0 多好。首先面临的问题就是CUDA等的安装及配置。

操作过程中参考了一些网络上的教程,但版本都不太匹配,并且操作似乎也不太一致,把自己整得很懵。但胡乱尝试一通,总算是成功了。效果如下:

$ nvidia-smi
Sun May 12 13:19:09 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce 940M        On   | 00000000:01:00.0 Off |                  N/A |
| N/A   45C    P5    N/A /  N/A |    246MiB /  2004MiB |     11%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1339      G   /usr/lib/xorg/Xorg                           126MiB |
|    0      1497      G   /usr/bin/gnome-shell                         116MiB |
|    0      2432      G   /usr/lib/firefox/firefox                       1MiB |
+-----------------------------------------------------------------------------+

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

$ ls
bin  cuda  cuda-10.0  etc  games  include  lib  man  sbin  share  src

在一个技术群里问了一下,一个大佬说这样就算安装成功了,经过尝试发现之后的进一步操作也没有出现问题。
下面就来简单捋一下我的操作经历。


首先我们参考的当然是Tensorflow的官方说明:https://www.tensorflow.org/install/gpu

硬件要求

系统支持以下支持 GPU 的设备:

CUDA® 计算能力为 3.5 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA 的 GPU 卡列表。

软件要求

必须在系统中安装以下 NVIDIA® 软件:
NVIDIA® GPU 驱动程序 - CUDA 10.0 需要 410.x 或更高版本。
CUDA® 工具包 - TensorFlow 支持 CUDA 10.0(TensorFlow 1.13.0 及更高版本)
CUDA 工具包附带的 CUPTI。
cuDNN SDK(7.4.1 及更高版本)
(可选)TensorRT 5.0,可缩短在某些模型上进行推断的延迟并提高吞吐量。

这里详细列出了安装Tensorflow 2.0 Alpha GPU版本的前提要求。下面就开始操作:

1. 安装CUDA

这一步在Tensorflow的官方教程中有详细介绍,直接按照上面的教程操作即可:

Ubuntu 18.04 (CUDA 10)

   #Add NVIDIA package repositories
   wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
   sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
   sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
   sudo apt-get update
   wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
   sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
   sudo apt-get update

   # Install NVIDIA driver
   sudo apt-get install --no-install-recommends nvidia-driver-410
   # Reboot. Check that GPUs are visible using the command: nvidia-smi

   # Install development and runtime libraries (~4GB)
   sudo apt-get install --no-install-recommends \
       cuda-10-0 \
       libcudnn7=7.4.1.5-1+cuda10.0  \
       libcudnn7-dev=7.4.1.5-1+cuda10.0
   

   # Install TensorRT. Requires that libcudnn7 is installed above.
   sudo apt-get update && \
           sudo apt-get install nvinfer-runtime-trt-repo-ubuntu1804-5.0.2-ga-cuda10.0 \
           && sudo apt-get update \
           && sudo apt-get install -y --no-install-recommends libnvinfer-dev=5.0.2-1+cuda10.0

2. 安装cuDNN

这里我们安装cuDNN 7.5
首先打开连接 https://developer.nvidia.com/rdp/cudnn-archive 下载对应的版本。
在这里插入图片描述点击第三个,下载压缩包 cudnn-10.0-linux-x64-v7.5.0.56.tgz
下在之后解压,拷贝,配置环境变量

# 解压
$ tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz

# 拷贝
$ cd cudnn-10.0-linux-x64-v7.5.0.56
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64

# 修改权限
$ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h /usr/local/cuda-10.0/lib64/libcudnn*

将以下内容追加到 ~/.bashrc 文件末尾:

export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDNN_PATH="/usr/local/cuda-10.0/lib64/libcudnn.so"

3. 验证cuDNN

$ echo -e '#include"cudnn.h"\n void main(){}' | nvcc -x c - -o /dev/null -lcudnn

上面这个命令不报错就说明没问题。

4. 安装Tensorflow2.0 GPU版本

可以先创建一个名为 tensorflow2_gpu 的虚拟环境,创建好之后进入虚拟环境,用pip安装Tensorflow2.0 GPU版本:

pip install tensorflow-gpu==2.0.0-alpha0

安装成功的话就大功告成啦!赶紧去使用试试吧

其他说明

安装过程中难免会出现一些其他问题,报错或者其他提示。出现这种情况就把报错复制到百度里,基本都会找到相关的解决办法。遇到其他问题也可以请教身边的大佬。
总之要不怕麻烦动起手来!

祝你操作顺利!

参考

[1]http://www.cnblogs.com/journeyonmyway/p/10316292.html
[2]https://www.tensorflow.org/install/gpu
[3]https://blog.youkuaiyun.com/weixin_42106049/article/details/85065489

### 解决CUDA运行时错误CUBLAS_STATUS_EXECUTION_FAILED 当遇到 `CUBLAS_STATUS_EXECUTION_FAILED` 错误时,通常表明在执行 cuBLAS 库中的某些操作时发生了问题。这种错误可能由多种原因引起,包括硬件问题、驱动程序不兼容、CUDA 版本冲突或内存不足等。 #### 可能的原因分析 1. **GPU 驱动程序版本过低** 如果系统的 NVIDIA 显卡驱动程序版本低于所使用的 CUDA 工具包的要求,则可能导致此类错误。可以通过命令 `nvidia-smi` 检查当前安装的显卡驱动版本,并确认其是否满足 CUDA 要求[^2]。 2. **CUDA 和 PyTorch 不匹配** 当 PyTorch 使用的 CUDA 版本与实际安装CUDA 版本不符时,可能会引发类似的错误。例如,PyTorch 安装的是针对 CUDA 10.2 编译的二进制文件,而系统上仅安装CUDA 10.0 或更低版本[^1]。 3. **GPU 内存不足** 若 GPU 上可用的内存不足以支持矩阵运算或其他计算任务,也可能触发此错误。可以尝试减少批量大小(batch size),或者释放不必要的张量变量以降低内存占用。 4. **硬件故障** 运行过程中如果检测到 GPU 硬件异常(如温度过高或风扇失效),也会导致该错误的发生。建议通过工具监控 GPU 的状态并排查潜在的物理损坏。 5. **随机数生成器未正确初始化** 在深度学习框架中(如 Caffe 或 TensorFlow),如果没有设置固定的随机种子值 (`random_seed`),则每次运行的结果会有所不同,这有时会引起不稳定行为甚至报错[^3]。 #### 推荐解决方案 为了修复上述提到的各种可能性带来的问题,可采取如下措施: - 更新至最新版 NVIDIA 显卡驱动; - 确认已安装适合目标环境需求的具体 CUDA SDK 版本号; - 减少模型输入数据批次规模来缓解资源压力; - 添加代码逻辑用于捕获异常状况下的退出机制以便调试定位根本原因; 下面给出一段 Python 示例脚本来展示如何调整批处理尺寸参数从而避免因内存耗尽而导致崩溃的情况发生: ```python import torch def train_model(model, dataloader, device='cuda'): model.to(device) try: for batch_idx, (data, target) in enumerate(dataloader): data, target = data.to(device), target.to(device) output = model(data) # Forward pass loss.backward() # Backward and optimize optimizer.step() except RuntimeError as e: print(f"Batch {batch_idx} caused an error: {e}") if 'out of memory' in str(e).lower(): new_batch_size = max(int(len(dataloader.dataset)/len(dataloader)*0.75),1) print(f'Reducing batch size to {new_batch_size}') reduced_loader = DataLoader(dataset=dataloader.dataset,batch_size=new_batch_size,...) train_model(model,reduced_loader) ``` 以上片段展示了动态缩减批次数量的方法,在捕捉到 OOM (Out Of Memory)类型的错误之后重新启动训练过程但采用更小的数据分组策略继续前进直到完成整个流程为止。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本初-ben

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值