文章目录
前言
搞深度学习两年了,所有代码都是在服务器上写的,导致到现在都没有一个本地深度学习工作站。这次碰上服务器坏了又坏,终于下定决心,在windows上配置本地深度学习工作站。整体配置顺序如下(*
表示可选):
- 安装Anaconda
- 创建python环境
- 安装Jetbrains Toolbox
*
- 安装Pycharm Professional/Community
- 安装cuda
- 安装cudnn
- 安装pytorch
*
- 配置环境变量
*
- 激活powershell的base环境
*
下面按照这个顺序简单介绍下
1. 安装Anaconda
按照官网给出的教程安装即可,过程中没有遇到什么bug。最后我把anaconda放在了D盘下,路径为D:\anaconda3
2. 创建python环境
打开Anaconda Prompt,这样打开后就直接进入到自动安装的base
环境了
如果是打开cmd,那么首先要输入activate
,这样才能激活base
环境
可以选择直接用base
环境,pip install
需要的包就可以
也可以选择额外创建环境。这里使用指定路径的创建方式,方便之后定位:
conda create --prefix="D:\env\pt" python=3.6.3
然后激活:
conda activate D:\env\pt
然后再pip install
需要的包
3. 安装Jetbrains Toolbox
直接在官网下载exe文件后再运行即可,安装过程非常快,很方便。可以选择语言为中文
此步骤是可选的,Toolbox就是集合Pycharm Community、Pycharm Professional等的工具包。根据我的使用习惯来说,先下载Toolbox再安装Pycharm更方便
4. 安装Pycharm Professional/Community
安装好Toolbox后,直接打开在Toolbox中点击安装
Pycharm即可
这里可以选择Pycharm Community,但我还是觉得Professional更方便
5. 安装cuda
6. 安装cudnn
cuda和cudnn的安装参考知乎上一个教程,按照这个步骤下来也没遇到什么问题。需要注意的是,彼时cuda最新的版本已经是CUDA 11.8
,然而pytorch可以适配的最高版本只是CUDA 11.6
。目前来说,想搞深度学习的话,pytorch大概率是要用到的,所以在官网上选择了CUDA 11.6
版本进行下载
这里插一句,由于我在安装cuda的过程中没有安装驱动,因此在查看cuda版本的时候,通过nvcc --version
和nvidia-smi
命令查看的版本是不一样的,前者显示11.6,后者显示11.4。至于原因是什么,可以参考这个博客
7. 安装pytorch
选好cuda版本,直接用官网给出的命令即可安装成功
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
很神奇,之前在服务器上,安装pytorch的命令总出问题,这次竟然一次成功
虽然安装成功,但后续在跑代码的过程中,报了AssertionError: Torch not compiled with CUDA enabled
的错误,于是只能重新安装
最后我使用的是离线安装的手段,先在官网下载了cu113(至于为什么是cu113,是因为我的cuda版本显示了11.6和11.4两种,网上说cuda11.4时安装cu113的torch版本时成功的)的对应torch版本torch-1.10.0+cu113-cp36-cp36m-win_amd64.whl
(使用cp36还是其他的是由电脑决定的,具体参考博客),然后跳转到下载位置目录,使用pip install --user ×××.whl
命令,安装成功(如果下载的torch版本和本机不对应,会报错)。这里的离线下载参考了博客,报错参考了博客
8. 配置环境变量
这一步主要是为了下一步powershell可以自由激活python环境而准备的,参考csdn回答
9. 激活powershell的base环境
因为pycharm professional中的终端是powershell,所以需要额外搞这一步,如果觉得没用可以跳过。同样是参考csdn回答。配好之后就可以在powershell中通过activate
命令激活base环境了,与cmd一样
总结
结束~整个过程大概会花费将近3h吧。整体来说配置过程还是很顺利的,后悔当初一直怕麻烦,没有搭建本地深度学习工作站。当然,windows上的显卡只是1650,运行很多项目还是太慢了,所以本地工作站主要用来写代码和简单的调试,真正跑实验和结果还是要去服务器。当然,也有比较两全其美的办法,就是个人拥有3090、4090之类的大显卡,目前本人正在筹备嘿嘿