记录全过程

前言:折腾了一天终于折腾完了。

wsl2 链接到代理

为什么要连接? 因为下载anaconda实在是太慢了。。

首先是wsl2 搭载 windows代理,如何让wsl2 能够跟windows一样可以访问google呢?通过资料的收集,查找到以下解决方法。

将下列内容添加到.bashrc文件中

1
2
3
4
host_ip=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export http_proxy="http://$host_ip:7890"
export https_proxy="http://$host_ip:7890"

然后启动生效

1
source ~/.bashrc

这样就能链接到网络了,这样下载镜像不至于很慢。另外思考 wsl 跟本机是如何连接的?看了相关资料,发现相当于一个局域网。我们可以打开clxxh的 允许局域网连接就行,,这样同时允许多个接入。

image-20240707153915667

即使你电脑代理关了,但是wsl2还是可以连接到的,所以没事。

成果图:

image-20240707154048111

配置相关环境

昨天是用的wsl + docker 思来想去 还是太麻烦,打算用李沐老师说的第二种方法。nvidia + conda

image-20240707154231107

第二种应该是最方便的,第一个和第三个 老师都给了很详细的说明,第二个可以按需分配。

我们首先先下载anaconda , 同时也参考了这个视频。手把手配置image-20240707154435773

但是你用外国的源,不用国内的源 ,你不开代理下载巨慢,或者你可以找找清华源,然后下载镜像。

下载好之后 通过一下命令来安装

1
sh Anaconda3-2022.10-Linux-x86_64.sh

然后无脑ok 之后 按yes 回车 确认安装。

image-20240707154636225

然后安装在默认路径。 安装好之后 就可以参考官网安装对应的包了。 参考网站在这里:动手学习

首先我们先创建虚拟环境。

1
conda create --name d2l python= 3.9 -y

创建好之后,激活环境

1
conda activate d2l

接下来我们就可以安装相对应的包了。

根据视频教程,是直接执行下面的步骤的,

image-20240707154857537

我最开始装了 很成功,然后 安装jupyter lab 等等 ,可以成功跑起来,但是跑第七章用gpu跑,发现 不太成功。

image-20240707143928539

还以为没有安装gpu的版本。 但是后面测试 发现是可以用gpu的。不太懂 我又删除环境,重新安装。后面才知道显卡不行,直接爆显存了。。 这都是后话了。


于是我又开始折腾,通过自己查找资料,去学习。发现要安装带gpu的版本,要带cudatoolkit 这种,由于我的驱动是11.5版本的,但是官网最低貌似是11.8。我只好下载之前的版本,history

利用这个指令来安装 相关工具包

1
2
# CUDA 11.3
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

发出类似的警告:

image-20240707155502274

后面加了啥配置,需要他灵活解决,可惜这里忘记记录了。在conda找到所需要的包之后就会给你一个安装列表,然后确定安装即可。

安装完之后 我们可以看 cuda 是否可以使用gpu

进入虚拟环境 然后打开python 输入下列指令

1
2
3
4
5
6
7
8
9
10
11
import torch

print("PyTorch版本:", torch.__version__)
print("CUDA版本:", torch.version.cuda)
print("CUDA是否可用:", torch.cuda.is_available())

if torch.cuda.is_available():
print("CUDA设备数:", torch.cuda.device_count())
print("当前CUDA设备:", torch.cuda.current_device())
print("CUDA设备名称:", torch.cuda.get_device_name(torch.cuda.current_device()))

经过测试 可行

1
2
3
4
5
6
PyTorch版本: 2.3.1
CUDA版本: 11.5
CUDA是否可用: True
CUDA设备数: 1
当前CUDA设备: 0
CUDA设备名称: NVIDIA GeForce GTX 1050
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import torch

# 检查是否有可用的 GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# 创建两个张量并将它们移动到 GPU
a = torch.randn(3, 3, device=device)
b = torch.randn(3, 3, device=device)

# 在 GPU 上进行张量运算
c = a + b
print("Tensor a:")
print(a)
print("Tensor b:")
print(b)
print("Result of a + b:")
print(c)

# 将结果移动回 CPU(如果需要)
c_cpu = c.to("cpu")
print("Result on CPU:")
print(c_cpu)

之后安装相关的包 d2l

1
pip install d2l==0.17.6

在执行这个的过程中,报错了。情况如下。

image-20240707160632492

image-20240707161003401

发现依赖好像起冲突了。只好重新安装一次,这次先安装d2l 在安装jupyter lab .

image-20240707100145606

image-20240707100545707

1
jupyter lab --ip 0.0.0.0 --allow-root

启动。 在本机127.0.0.1:8888 就可以打开了。

然后跑alexnet 模型。由于显卡有限 只能把batch 调小一点,调成 size = 16 。

image-20240707161210960

跑了半小时 ,终于大功告成。 配环境是最麻烦的。。

能用别人的服务器最好,省的配置了。。发现一个宝藏网站,以后再琢磨。启智


后记:真的太折磨了,环境配置,动手才是真理,有正反馈,光看是不行的。