文章目录

  • 1、版本要和pytorch官网对应,CUDA11.8及其对应版本的cudnn
  • 2、CUDA Toolkit安装出现自动重启
  • 3、Python版本
  • 4、配置永久国内镜像源
  • 5、要在激活的虚拟环境里安装pytorch
  • 6、进入python后检查是否gpu配置成功
  • 7、在虚拟环境中启动jupyter notebook
  • 8、conda中install找不到的包
  • 9、jupyter notebook 500打不开了怎么办
  • 10、jupyter notebook 能打不开了但是内核又连接不上了怎么办
  • 11、卸载虚拟环境
  • 12、安装anaconda环境到指定路径
  • 修改默认安装路径:
  • 13、已经安装的模块,在Pycharm中的添加的conda解释器都能运行,但在jupyter notebook中仍显示No moudle怎么办?
  • 14、训练推理时不要忘记启用GPU device
  • 15、环境克隆clone
  • 16、Anaconda里创建了新的虚拟环境,但是却没有kernel怎么办?


1、版本要和pytorch官网对应,CUDA11.8及其对应版本的cudnn

一开始我用Nvidia sim命令查的RTX-4060本地适配版本为CUDA12.0,但到了pytorch官网上才发现稳定本最高才支持11.8,于是又卸了重下,是否能向下兼容请在评论区分享。

Nvidia官网上下载对应的深度神经网络库版本(cudnn11.8)和CUDA Toolkit11.8:

如果没有Nvidia账号的话就创建一个并登录;

CUDA安装路径最好是默认C盘,环境变量其实没那么重要,CUDA会自动生产环境变量。

2、CUDA Toolkit安装出现自动重启

只勾选安装CUDA,不要勾选Geforce Experience那些;

如果C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin下能找到nvcc.exe,说明CUDA已经安装好了。

将cudnn解压后,复制替换掉C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8下的同名文件夹就可以了。

cmd里输入nvcc -V,可以查看CUDA是否安装成功,-V要大写没有间隔。

3、Python版本

Anaconda里我的虚拟环境是用的python 3.10版本才成功,有的博客说3.8,3.9也行,不知道对不对,反正我一开始用的3.7不行。

Anaconda安装命令:conda create -n pytorch python=3.10

4、配置永久国内镜像源

在base环境里逐行输入:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

5、要在激活的虚拟环境里安装pytorch

activate 虚拟环境名
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

先尝试去掉 -c pytorch,然后执行安装,耐心等待,如果中途下载掉线,重复执行语句即可,会从缓冲进度继续下载;
有时也可以不用去掉-c pytorch,去掉后反而死活装不上,下载速度依旧很快,即便已经用的是国内镜像源。

6、进入python后检查是否gpu配置成功

虚拟环境内输入python进入python3.10环境,

逐行输入下列中的指令,如果安装成功的话最后是会返回True:

(pytorch) C:\Users\Lenovo>python
Python 3.10.11 | packaged by Anaconda, Inc. | (main, Apr 20 2023, 18:56:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)  # 查看torch当前版本
2.0.1
>>> print(torch.version.cuda)  # 编译当前版本的torch使用的cuda版本号
11.8
>>> print(torch.cuda.is_available())  # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用
True

输入quit()退出python环境
输入conda deactivate退出虚拟环境

7、在虚拟环境中启动jupyter notebook

这篇真的不坑

4060对应pytorch 4060对应的cuda数_pytorch


建议在虚拟环境里先切到本地虚拟环境存放的路径,便于以后jupyter notebook环境读取:

通过使用cd C:\Users\Lenovo\.conda\envs\pytorch切换实现;

8、conda中install找不到的包

改用pip install指定安装;参考anaconda命令行下安装深度学习pytorch的d2l包

尽管conda有大量的软件包,但与PyPI上提供的150,000多个软件包相比,它仍然很小。有时候需要的包没有conda包,但在PyPI上有,可以用pip安装。
搞技术就是这样,总有你想不到需要去解决的问题,一步一步来,总会摸索出解决方法。

如:指定虚拟环境目录安装d2l包:

cmd中:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple d2l --target=C:\Users\Lenovo\.conda\envs\pytorch\Lib\site-packages

d2l Anaconda里显示没有,但pip就可以:

4060对应pytorch 4060对应的cuda数_虚拟环境_02


其实,Anaconda中也可以用pip,总之技多不压身。

9、jupyter notebook 500打不开了怎么办

输入下列指令即可:

pip install jupyter notebook --upgrade --force-reinstall --no-cache-dir
conda install ipykernel --force-reinstall

–upgrade 更新
–force-reinstall 强行重装
–no-cache-dir 不再指定缓存目录

10、jupyter notebook 能打不开了但是内核又连接不上了怎么办

在环境目录下再输入指令:python -m ipykernel install --user就真的ok了

4060对应pytorch 4060对应的cuda数_pytorch_03

11、卸载虚拟环境

有环境安装错了也不要紧,在Anaconda里可以通过
conda env remove -n env_nameconda env remove -n env_name-all 完全删除配置错的虚拟环境。

12、安装anaconda环境到指定路径

方法就是在conda create命令加上选项–prefix即可

安装虚拟环境到指定路径的命令如下:

conda create --prefix=some_dir/env_name python=3.6 上面的命令中,
路径some_dir是先建好的文件夹,env_name是需要安装的虚拟环境名称。请注意,安装完成后,虚拟环境的全称包含整个路径,为some_dir/env_name。

修改默认安装路径:

Anaconda安装以及修改环境默认位置图文教程

13、已经安装的模块,在Pycharm中的添加的conda解释器都能运行,但在jupyter notebook中仍显示No moudle怎么办?

解决方法:在虚拟环境中安装nb_conda插件,并切换nb_conda版本的kernel(注意不是本地的kernel)

安装方法:Dancer-Jupyter Notebook中切换conda虚拟环境

比如此时使用的kernel是torch1,则会继续报错No moudle,即使import sys导入了包的路径也不行,需要使用conda env:torch1的虚拟环境kernel才能正常运行:

4060对应pytorch 4060对应的cuda数_4060对应pytorch_04

14、训练推理时不要忘记启用GPU device

以简单的贯序模型为例,
需要通过:

# 定义模型
model = model.to(device) # 将模型移动到设备上

将建立好的模型部署到GPU设备上;
并通过:

imgs = imgs.to(device)  # 将输入数据移到设备上
        labels = labels.to(device)  # 将标签移到设备上

将模型的参数同样传递给GPU设备:

import torch
import torch.nn as nn
import torch.optim as optim

train_loader = torch.utils.data.DataLoader(cifar2, batch_size=64,
                                           shuffle=True)

model = nn.Sequential(
            nn.Linear(3072, 512),
            nn.Tanh(),
            nn.Linear(512, 2),
            nn.LogSoftmax(dim=1))

# 定义模型
model = model.to(device) # 将模型移动到设备上

# 查看模型参数位置
for name, param in model.named_parameters():
    if param.device.type != 'cpu':
        print("模型参数'{}'位于GPU上".format(name))
    else:
        print("模型参数'{}'位于CPU上".format(name))

learning_rate = 1e-2

optimizer = optim.SGD(model.parameters(), lr=learning_rate)

loss_fn = nn.NLLLoss()

n_epochs = 100

for epoch in range(n_epochs):
    for imgs, labels in train_loader:
        imgs = imgs.to(device)  # 将输入数据移到设备上
        labels = labels.to(device)  # 将标签移到设备上
        outputs = model(imgs.view(imgs.shape[0], -1))
        loss = loss_fn(outputs, labels)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

    print("Epoch: %d, Loss: %f" % (epoch, float(loss)))

15、环境克隆clone

conda create -n 新环境名 --clone 旧环境名

16、Anaconda里创建了新的虚拟环境,但是却没有kernel怎么办?

说明没有安装ipykernel,但这种情况是可以在Pycharm里导入conda环境中使用的;
要解决这个问题需要在新建的虚拟环境中执行以下安装指令:
1、pip install ipython 2、pip install ipykernel 2、python -m ipykernel install --name 环境名