纯小白,屁也不会,从零开始
系统安装
参考微软官方的WSL安装流程,注意的点:
- 重启进BIOS开启虚拟化
- 记得不要直接使用install指令执行默认安装,这样会安装最新版22.04(相当于在应用商店中安装了名为“Ubuntu”的应用),可以直接在商店中安装20.04版本
安装完成后Ubuntu顺利启动,进行以下操作:
启动&换源
- 设置user名称&密码
- 换源
cp备份原镜像源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑软件源
sudo nano /etc/apt/sources.list
cut掉内容,进行清华源替换
保存推出的指令我都不会,现学现用
CTRL+O后还要enter一下
环境配置
- gcc 简单,略
- cuda
需要先更新Windows系统中的Nvidia驱动,之后在cuda官网中选择对应版本的cuda版本
注意此处下载的是系统中的cuda驱动,之后在conda中创建虚拟环境时可以低于这个版本,但不能高于此版本,因为conda中创建环境时只会下载部分动态链接库,编译时需要用到系统中自带的cudatoolkit部分组件,如果版本不够就会报错
下载的时候记得选择runfile版本的,这个版本对于显卡驱动的安装是可选择的,而我们并不需要安装
下载好了安装报错 忘记截图了 具体解决方式采用网上的彻底卸载方法处理一下重新安装就好啦
最后nvcc-V查看下版本有显示就OK
- cudnn
手动下载好需要的cudnn版本的deb版本文件,直接手动拖入目标目录(因为下载是在Windows下进行的)
按照英伟达官方教程一步一步操作即可
压力大得很,顾不上详细记录了。
后面的内容还有:
1.安装conda
2.conda换源
3.新建虚拟环境
4.安装对应的pytorch和cuda
前三步网上的教程很多,略。
其中cuda的安装废了很多力气,因为最优先的pytorch官网下载打包安装的简略指令由于网络原因无法继续了
而手动一个一个安装时却不知道为什么网上所有的教程
中的
pip install cudatoolkit=11.0
这一指令根本没用了
因此最后选择了conda安装
但是换别的环境时可能仍然会出现新的版本问题,后续再想办法解决吧
5.最后便是打包安装requirements.txt文件中的库
在sikit-learn时频繁报错,明明我的文件中写的是sikit-learn,它却说我的指令是已经弃之不用的sklearn,最后通过手动安装它和之后的库解决了
6.新坑
在运行源码时,报错numpy
AttributeError: module 'numpy' has no attribute 'int'.
由于1.20之后的版本不再支持该句中的int类型参数
选择重新安装旧版本解决
但这导致其他依赖新版本的包如pandas等在接下来的代码运行中继续报错了
还好之前的代码仅仅是一个数据预处理组织程序,再其运行完生成了满足要求的结果后我重新更新安装了numpy,后面的程序得以顺利运行
7.总结
配置环境+复现代码花了我整整三天时间
其中踩坑各种大坑小坑不断,回头回想来全是血泪
由于自己的耐心和状态,过程中并没有详细记录
简单总结下让现在回想自己印象深刻的坑:
1.按照微软官网安装wsl指令后默认安装了最新版的Ubuntu22.04,浪费了我一堆流量,还得卸载重装,建议直接商店安装,想要哪个点哪个,简单的最有效;
2.cuda的版本选择问题——新版可以向下兼容旧版,以及runtime版本和driver版本的区别(网上的教程不少,粗略阅读就可以搞清楚不踩坑)
3.cudnn的安装——这个有国内网站,下载速度快一点,记得选cn后缀的
4.conda的安装——默认安装到了root下,我配置环境变量的时候就觉得奇怪,这玩意能访问root下的文件吗,事实证明确实不行,于是再彻底卸载加重装
5.conda中 pip装不上cuda