ubuntu16.4 安装 tensorflow pycharm
最近做强化学习需要用到 linux,配置一下环境 cuda10.0,tensorflow1.14,nvidia435 驱动。遇到了不少问题,记录下来给自己一个参考。前面是正确的安装姿势。后面是出现一些问题的解决方式
Nvidia驱动安装
N 卡驱动遇上了不少坑
官网上有驱动下载。推荐选择 .run 的。(如果使用apt-get-install安装N卡驱动有概率进不了系统)。驱动版本需要和cuda版本对应,太老的驱动不支持新版 cuda。由于目前(19/09/04)tensorflow 依然是对应 cuda10.0。
我在安装 cuda 时把以前的435的驱动变成了418的驱动。
- 先卸载旧驱动安装新驱动,
sudo apt-get --purge remove nvidia-418
- 将开源驱动屏蔽。
编辑 /etc/modprobe.d/blacklist.conf ,在文件后面加入 blacklist nouveau 。最好把下载的安装文件移动到home文件夹下。
crtl+alt+F1,进入纯文本界面。然后sudo /etc/init.d/lightdm stop
停止x-window
运行之前下载好的安装文件。进入到安装文件的文件夹。这里是不能输入中文,所以之前说要出来。
chmod +x ./NVIDIA-Linux-x86_64-435.32.run
sudo ./NVIDIA-Linux-x86_64-435.32.run -no-x-check -no-nouveau-check -no-opengl-files
都选默认就可以了。大概率会报错Unable to load the “nvidia-drm” kernel module
。没关系,其实应该是装成功了。感谢 zhanjzh的blog
重启 shutdown -r now
然后nvidia-smi
,如果显示了显卡信息就说明装好了
cuda安装
在官网选择对应系统和版本下载。ubuntu安装下面会有安装命令。推荐下载.run文件。
下载完后 sudo sh ./cuda_10.0.130_410.48_linux.run
。路径默认就可以,询问是否安装驱动看个人,我选 no。询问是否添加到库引用选 yes。卸载的话 /etc/cuda
如果是 .deb文件按照他的指令装完后需要添加路径vim ~/.bashrc
文件末尾添加两行
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
保存,source ~/.bashrc
更新。卸载的话sudo apt-get autoremove --purge cuda
也可以试试sudo dpkg -P cuda-repo-ubuntu1604-10-0-local*
,包名字根据版本定
装完之后用 nvcc -V
测试,成功的话会显示 cuda 的版本,不成功可以看看/etc/local路径下有没有 cuda,有的话就是路径的问题。
cudnn安装
先到官网上下载 cudnn,需要注册一个开发者账户。版本我选择7.6.3。
将下载下来的 cudnn 解压,然后复制到 cuda 各个对应的文件夹内
tar -xzvf cudnn*
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
pycharm安装
pycharm 官网,选择 community 下载。
tensorflow安装
我使用的是 pycharm 自带的安装。点击右下角,选择 Interpreter Setting。点击右边的 +,搜索tensorflow-gpu。默认是1.14,就用这个。在装之前将自带的源换成清华的源,点击Manage Repositories输入 https://pypi.tuna.tsinghua.edu.cn/simple/
安装完了之后不出意外是用不了 GPU 的,会报 warning,意思就是找不到 cuda 和 cudnn。import tensorflow 能成功不意味gpu可以使用。需要在 pycharm 的右上角 run 里编辑里添加环境变量LD_LIBRARY_PATH
/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
默认安装的 numpy1.17 会有 warning FutureWarning:Passing (type, 1) or ‘1type’。安装成1.14就好了
N卡驱动装完后Linux黑屏只有光标在闪
哇 当时都绝望了
启动黑屏很多人说是 grub 的问题。但是我通过 usb 启动盘选择 try ubuntu 后,重装了 grub 之后发现问题依旧,这时觉得是nvidia驱动问题。
卸载驱动需要先进系统,两种方法都可以
-
usb安装盘进入后,切换到硬盘上的系统。先挂载
sudo mount /dev/nvme0n1p3 /mnt
注意这里的 nvme0n1p3 是我 ubuntu 所在的分区。使用
fdisk -l
找到你系统所在的分区。然后sudo grub-install --boot-directory=/mnt/boot dev/nvme0n1p3
,这是修复 grub 的,没问题的可以不用改。然后sudo chroot /mnt
切换到硬盘上的 bash。 -
开机选择 ubuntu advanced 选择进入 recovery 模式进入 root 终端
接着就是卸载和重装N卡驱动了。
pytorch
pytorch 使用 anaconda 安装,没有什么问题。使用torch.cuda.is_available()
检查是否可以使用cuda
本文命令纯手打,可能存在错误。
参考
nvidia官网