ubuntu安装cuda8.0,cudnn6.0,tensorflow-gpu1.3.0,keras,pytorch


tensorflow-gpu 版本比较难安装,几次安装成功后发现其实用的还是cpu,不建议用conda安装,如果你不是非要使用gpu的话,conda安装确实最快,使用以下命令即可

#注意conda版本中python要为3.6版本,建议安装conda4.6.12
conda install tensorflow-gpu==1.2.1 keras  

但是发现这样安装之后还是使用的cpu,可以使用以下代码测试

import numpy
import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
```python
#gpu版本输出应为
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 960M, pci bus id: 0000:01:00.0, compute capability: 5.0
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0

记录一次成功安装的过程

安装nvidia显卡驱动

在ubuntu的软件与更新那里,选择附加驱动,将其改为:使用NVIDIA binary driver - version.
网上有说要禁用nouveau,不知道有没有必要
编辑文件blacklist.conf

sudo vim /etc/modprobe.d/blacklist.conf

在文件最后部分插入以下两行内容
blacklist nouveau
options nouveau modeset=0

#更新配置,重启系统
sudo update-initramfs -u
sudo reboot

降低gcc,g++版本

降低gcc,g++版本至5.0或者以下

sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
#sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-<之前版本号> 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
#sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-<之前版本号> 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10
gcc --version
g++ --version

安装依赖项

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler   
sudo apt-get install --no-install-recommends libboost-all-dev   
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev   
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev   
sudo apt-get install git cmake build-essential
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev 

安装cuda

安装cuda8.0版本https://developer.nvidia.com/cuda-toolkit-archive
下载CUDA Toolkit 8.0 - Feb 2017
按网页提示安装

安装cudnn

安装cudnn6.0https://developer.nvidia.com/rdp/cudnn-archive
下载Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0
下载需要注册账号,如果没有就注册一个

tar xvzf cudnn-8.0-linux-x64-v6.0.tgz # 解压
sudo cp cuda/include/cudnn.h /usr/local/cuda/include # 复制解压文件中的cudnn.h到 安装的cuda的include 中
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 # 复制相应文件到 cuda的lib64 中
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* # 修改复制的文件的权限

配置环境变量

sudo gedit ~/.bashrc
#在bashrc文件的末尾加入
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#运行
sudo source ~/.bashrc

也可以在/etc/profile文件的末尾加入这两段,然后运行 source /etc/profile

至此cuda部分安装完成。可以用以下代码测试:

sudo cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

安装tensorflow-gpu

不使用conda安装,采用pip安装的形式。安装版本实质参考官方版本对应的图。我们的python3.6,cuda8.0,cudnn6.0
,所以应该安装tensorflow-gpu==1.3.0
在这里插入图片描述

#pip 安装tensorflow-gpu和keras
sudo pip install tensorflow-gpu==1.3.0 keras
# 3090 cuda11 安装tensorflow1.15
pip install nvidia-pyindex
pip install nvidia-tensorflow

安装pytorch

可以去官网,有详细安装步骤,以下为官网摘录。https://pytorch.org/

pip3 install https://download.pytorch.org/whl/cu80/torch-1.0.1.post2-cp36-cp36m-linux_x86_64.whl
pip3 install torchvision

测试pytorch是否安装成功以及pytorch能否使用cuda的代码:

from __future__ import print_function
import torch
x = torch.randn(1)
print(x)
print(x.item())
# let us run this cell only if CUDA is available
# We will use ``torch.device`` objects to move tensors in and out of GPU
if torch.cuda.is_available():
    device = torch.device("cuda")          # a CUDA device object
    y = torch.ones_like(x, device=device)  # directly create a tensor on GPU
    x = x.to(device)                       # or just use strings ``.to("cuda")``
    z = x + y
    print(z)
    print(z.to("cpu", torch.double))       # ``.to`` can also change dtype together!

安装结束

可用之前的代码测试安装是否成功

可能出现的问题

问题集中在tensorflow-gpu版本和cuda,cudnn版本不一致,使用时出现错误

ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory #也可能是libcudnn.so.9等等

出现这些问题,是因为你的tensorflow版本和cudnn版本不对应,找不到他想要的库。重新安装,或者参考网上的这种方法试下

#建立一个软链接
ln -s /usr/local/cuda/lib64/libcudnn.so  /usr/local/cuda/lib64/libcudnn.so.5
#或者有其他问题试试以下
sudo ldconfig /usr/local/cuda/lib64
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xiangz201

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

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

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

打赏作者

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

抵扣说明:

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

余额充值