历时半个多月的折磨,终于在电脑上搭建好了Ubuntu+Autogluon(GPU)环境,可以愉快地测试自动机器学习(Auto-ML)的效果啦。
搭建过程中参考了许多文章,遇到了许多问题,算是一段非常痛苦的经历。为此写下搭建过程中遇到的一些问题以及试验可行的一套搭建过程,供后来者参考。
先说硬件配置:RTX2060Super+AMD 3600X with 16GB RAM and 512SSD+1T ROM
需要安装的系统或软件有:Ubuntu20.04LTS,Anaconda,CUDA ToolKit,cuDNN,mxnet_gpu,pytorch,autogluon
该方法仅适用英伟达显卡,AMD的小伙伴可以参考其他文章。
这里参考的Hacah发表于CSDN的教程,照着一步一步安装就可以:Ubuntu20.04安装详细图文教程(双系统)_Hacah的博客-CSDN博客_ubuntu20.04安装教程Ubuntu安装前言最近想把自己开发环境换成linux的,想了一下还是ubuntu比较面向桌面,而且想熟悉使用一下Linux操作系统,决定使用ubuntu。开始了着手查找安装Ubuntu双系统的方法。安装有三种,虚拟机安装、wubi安装和U盘安装。第一种发挥不出硬件本身的性能,尝鲜还行。使用wubi–就是ubuntu提供的一种简便的安装系统方法,但是当时使用一直出错。所以我用了第三种,就出现了这篇博客。一、需要资源U盘一个(提前备份数据)Ubuntu 20.04 LTS 镜像下载地址:清华源https://blog.csdn.net/hwh295/article/details/113409389至于为什么要使用Ubuntu系统:Autogluon目前仅支持Linux系统下的GPU计算,因此选取了图形界面友好的Ubuntu系统。
Anaconda内部包含了许多python包,可以有效减少环境配置所花费的时间,参考教程如下:
anaconda安装ubuntu20.4中 - sushamu - 博客园 (cnblogs.com)
需要注意的是,在博客第三步安装过程中,建议不要一次YES到底-
在选择安装目录这一段,Anaconda默认地址是在根“root”目录中,如果安装在根目录且需要运行Anaconda,可能每次都需要把控制台进入超级管理员模式(root)。此时如果不同时把后面安装的CUDA\CUDnn等软件都安装到root里,互相软件可能无法识别,导致出现错误。
这里建议把Anaconda安装到家(home)目录中,一般目录地址如下:/home/#你的用户名#/Anaconda
后续继续按照博客的4、5、6部安装Anaconda,在第7步输入
conda create -n autogluon python=3.9
# 等待conda创建虚拟环境完成后,进入该虚拟环境
conda activate autogluon
至此,Anaconda配置完成
接触过Python的朋友们可能都知道,经常我们会因为各种服务器或软件提供商地址在墙外而导致安装进程错误。因此我们先把Ubuntu、Anaconda、Python的源都换到国内镜像。
Ubuntu换源:按照文章第三类方法进行即可
ubuntu18.04、ubuntu20.04桌面版换国内源 - 知乎 (zhihu.com)
Anaconda换源:
Anaconda 换国内源_scl52tg的博客-CSDN博客_conda 换源
Python换源:注意用命令符换源时需要在conda环境中(conda activate)
python 更换国内镜像源_刘墨苏的博客-CSDN博客_python切换镜像源
接触过机器学习环境配置的朋友们都了解,无论pytorch还是tensorflow,显卡驱动与各个环境包之间的版本对应有一个较为严格的关系,如果版本不一致很有可能无法运行。
今天(2022年5月26日)我选择的各个软件版本如下:
CUDA ToolKit-10.2,cuDNN-8.4,Pytorch-1.10.1-cu102-cp39,mxnet_cu102,
首先配置显卡驱动,在软件和更新界面中“附加”驱动选项就可以选择需要安装的Nvidia驱动,这里我选择的470版本。
安装完成后,控制行内输入nvidia-smi,弹出来显卡驱动版本与支持的CUDA版本,即成功。
-------
CUDA版本选择10.2,需注意的是虽然该版本官方并不支持Ubuntu20.04LTS,但其不支持原因主要在于gcc版本问题(Ubuntu20.04自带gcc-9,但CUDA10.2安装最好对应gcc-7),因此我们同时还需要切换gcc版本。
sudo apt-get install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
gcc降级到7了,随后去英伟达官网下载CUDA安装包:CUDA Toolkit 10.2 Download | NVIDIA Developer
这里选择Linux Ubuntu18.04版本,使用runfile安装,这样比较便捷
随后下面有英伟达官方的Installation Instructions,网络条件好的同学可以直接使用wget下载,但还是推荐直接把后面的“https://..."网址复制到地址栏直接下载,下面讲解直接下载以后的安装方法。
先cd到下载目录,安装Ubuntu时选择中文的一般目录叫“下载/”,英文的则为“Downloads/”,随后sudo sh #下载的文件名"即可
cd 下载/
sudo sh "下载/cuda_10.2.89_440.33.01_linux.run"
加载时间可能比较长,稍微等一等,不要Ctrl+C中断了。
安装选项出来以后把第一个“driver”驱动取消了,因为我们已经安装过驱动了,然后直接下一步直到安装完成。
完成以后输入nvcc-v,弹出CUDA版本号即为成功
-----
cuDNN选择8.4版本
英伟达官方下载:https://developer.nvidia.com/rdp/cudnn-download
注意需要注册英伟达账号
安装过程参考这篇文章吧:linux上验证cudnn是否安装成功_NVIDIA cuDNN v8 deb方法安装教程(Linux/Ubuntu)_葛店小学张洪雨的博客-CSDN博客
OK,大环境基本都完成了,接下来就是python内部包的配置
pytorch建议自行下载whl包自行安装,避免莫名其妙的版本错误
https://download.pytorch.org/whl/torch_stable.html
下载torch-1.10.2%2Bcu102-cp39-cp39-linux_x86_64.whl
conda activate autogluon
cd 下载/
pip install torch-1.10.2+cu102-cp39-cp39-linux_x86_64.whl
pip install mxnet_cu102 //安装CUDA10.2对应的mxnet_gpu
pip install autogluon
在安装pytorch,mxnet和autogluon的过程中都注意一下,这几个包有没有给你重新安装CUDA TookKit,如果有的话建议把这两个都装完以后卸载所有的CUDA并重新安装一遍需要的版本(谨防出错)。
Autogluon官方给出的测试代码如下,注意其中的train与test均为线上位置,下载需要等待一段时间。
from autogluon.tabular import TabularDataset, TabularPredictor
train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
predictor = TabularPredictor(label='class').fit(train_data=train_data)
predictions = predictor.predict(test_data)
出来各个模型的计算情况就算大功告成了!
安装过程中如果遇到其他问题也欢迎大家评论区共同交流!