1. 硬件兼容性检查你的GTX 960M还能战吗很多朋友拿到老旧笔记本的第一反应是这玩意儿还能跑深度学习。我当初用GTX 960M时也这么想但实测下来发现完全够用。先别急着安装咱们得做好三件事首先打开设备管理器找到显示适配器展开。如果你看到NVIDIA GeForce GTX 960M就成功了一半。我遇到过驱动异常的情况这时候需要右键选择更新驱动程序让系统自动检测最新驱动。不过要注意最新驱动不一定最适合我们后面会讲到版本匹配的玄机。更专业的方法是打开NVIDIA控制面板桌面右键菜单就有点击左下角的系统信息。在组件选项卡里你会看到NVCUDA.DLL后面跟着的CUDA版本号。我的机器显示是8.0.0这意味着最高可以安装CUDA 9.x版本。有个冷知识NVIDIA驱动是向下兼容的所以新版驱动可以支持旧版CUDA但反过来不行。显卡算力也是个关键指标。GTX 960M属于Maxwell架构计算能力是5.0。这个数值决定了它能跑哪些深度学习操作。我整理了个实用对照表显卡型号架构计算能力推荐CUDA版本GTX 960MMaxwell5.09.0GTX 1060Pascal6.110.0RTX 2060Turing7.511.0最后别忘了检查显存。在任务管理器性能标签页能看到显存大小GTX 960M一般是4GB。虽然比不上新卡但跑MNIST分类或者简单CNN模型完全够用。我试过在这样配置下训练ResNet-18batch size设32照样跑得动。2. CUDA与cuDNN的版本华尔兹版本匹配是个技术活我在这上面栽过跟头。CUDA 9.0cuDNN 7.1是经过实测最稳定的组合但安装过程有讲究。先从官网下载CUDA 9.0 Toolkit。注意要选local版本大约2GB因为网络安装版经常抽风。下载时记得勾选Driver components这样会自动安装匹配的显卡驱动。安装时建议选自定义模式把Visual Studio Integration的勾去掉——这个组件最容易出问题。我遇到个典型错误安装进度到90%突然回滚。这时候别慌按这个步骤来打开服务管理器winR输入services.msc停掉所有NVIDIA开头的服务删除C:\Program Files\NVIDIA Corporation下的所有文件重新运行安装程序cuDNN的安装更讲究。下载cuDNN 7.1需要注册NVIDIA开发者账号免费解压后会得到三个文件夹bin、include、lib。这些文件需要手动复制到CUDA安装目录具体路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\binC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\includeC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64这里有个隐藏坑点复制文件时一定要选替换但Windows可能提示权限不足。我的解决办法是先用管理员身份打开命令提示符执行takeown /f C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\* /r /d y icacls C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\* /grant administrators:F /t3. PyTorch的离线安装妙招官方conda安装命令经常卡住我推荐离线安装法。先创建虚拟环境conda create -n pytorch_gpu python3.7.3 conda activate pytorch_gpu关键来了去清华镜像站下载这两个文件pytorch-1.1.0-py3.7_cuda90_cudnn7_1.tar.bz2torchvision-0.3.0-py37_cu90_1.tar.bz2下载完成后在文件所在目录打开命令行执行conda install --offline pytorch-1.1.0-py3.7_cuda90_cudnn7_1.tar.bz2 conda install --offline torchvision-0.3.0-py37_cu90_1.tar.bz2但这样还没完需要补装依赖项。执行这个魔改版命令注意去掉-c pytorchconda install pytorch torchvision cudatoolkit9.0验证安装是否成功有个小技巧先启动python交互环境然后依次执行import torch print(torch.__version__) # 应该输出1.1.0 print(torch.cuda.is_available()) # 必须返回True print(torch.zeros(1).cuda()) # 应该显示tensor([0.], devicecuda:0)4. PyCharm环境配置的隐藏技巧在PyCharm里配置虚拟环境时很多人找不到conda环境路径。其实默认位置在 C:\Users\你的用户名.conda\envs\pytorch_gpu有个更聪明的方法在PyCharm的Terminal里输入conda env list复制显示出来的路径即可。我推荐设置两个实用功能在Settings - Tools - Terminal里把Shell path改成cmd.exe /K conda activate pytorch_gpu在Run/Debug Configurations里添加Environment variablesName: CUDA_VISIBLE_DEVICESValue: 0这样每次打开终端都会自动激活环境而且可以明确指定使用GPU。最后测试时建议运行这个简单CNN代码import torch import torch.nn as nn class TestNet(nn.Module): def __init__(self): super().__init__() self.conv nn.Conv2d(3, 16, kernel_size3) def forward(self, x): return self.conv(x) net TestNet().cuda() fake_data torch.randn(1, 3, 32, 32).cuda() output net(fake_data) print(output.shape) # 应该输出torch.Size([1, 16, 30, 30])如果看到GPU内存占用上升说明环境完全配置成功了。这套配置虽然用的都是旧版本但在GTX 960M上实测训练效率比CPU快8-10倍。