在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch并验证安装
#记录工作
提示:整个过程最好先开启系统代理,也可以用镜像源,确保有官方发布的最新特性和官方库的完整和兼容性支持。
期间下载会特别慢,需要在系统上先开启代理,然后WSL设置里打开网络模式“Mirrored”,以设置WSL自动使用主机上的代理网络。
【WLS2怎么设置网络自动代理 - CSDN App】https://blog.csdn.net/u014451778/article/details/146073726?sharetype=blog&shareId=146073726&sharerefer=APP&sharesource=u014451778&sharefrom=link
一、首先要先确保——windows系统中要正确安装了以下组件:
(一)显卡驱动;
下载 NVIDIA 官方驱动 | NVIDIA
(二)Microsoft Visual Studio;
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
(三)CUDA;
CUDA Toolkit 12.8 Downloads | NVIDIA Developer
(四)cuDNN;
CUDA Toolkit 12.8 Downloads | NVIDIA Developer
(五)正确安装WSL2-Ubuntu版本
要正常安装WSL2-Ubuntu版本,安装成功后打开ubuntu界面输出如下界面:
安装 WSL | Microsoft Learn



该版本默认是安装的WSL2-Ubuntu 24.04版本 ,也可以选择其他的ubuntu版本进行安装。
二、在WSL2-Ubuntu系统中安装CUDA、cuDNN、Anaoconda
在windows系统中正确安装完必要组件后,然后才是在WSL2-Ubuntu中按照顺序安装 CUDA、cuDNN、Anaoconda。
打开WSL2-Ubuntu,先安装CUDA、再安装cuDNN、最后是Anaconda(管理虚拟环境)
只要windows系统配置好了显卡驱动,在WSL2中一般不必再另外安装linux驱动了。
在安装前可以在WSL2-Ubuntu中使用以下命令进行验证与显卡的通信和驱动调用的情况:
nvidia-smi

(一)安装CUDA
打开CUDA官方网址<建议“deb(network)”方式较为省事>,完整复制全部命令粘贴进WSL2-Ubuntu终端中按回车键运行。
CUDA Toolkit 12.8 Downloads | NVIDIA Developer
选项如图所示:
当然,也可以选WSL-Ubuntu这个选项更把稳。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
1、复制图片/官网下边的全部命令,粘贴到WSL2-Ubuntu终端窗口中,按ENTER键(回车键)运行

2、过程中会要求输入密码,输入ubuntu密码即可。

3、执行命令后会自动进行下载和安装:


4、安装结束后进行环境变量的编辑:
a)我们可以按照下面的步骤来永久添加环境变量:
检查安装是否成功在配置环境变量之前,先确认 CUDA 是否正确安装。运行以下命令:ls /usr/local/cuda-12.8/bin/
在 WSL2-Ubuntu 系统中,CUDA 12.8 通常安装在/usr/local/cuda-12.8目录下,这个目录包含了 CUDA 相关的各种组件,如 bin(包含可执行文件,比如 nvcc 编译器就在这里面)、lib64(包含库文件)、include(包含头文件) 等。如果在安装过程中没有指定其他特殊路径,这就是默认的安装位置。我们可以通过以下命令来验证:
ls /usr/local/cuda-12.8
如果安装成功,我们会看到nvcc等工具的列表。如果没有看到这些文件,可能需要重新检查安装步骤。

从我执行 ls /usr/local/cuda-12.8 后的输出结果来看,CUDA 12.8 似乎已经成功安装到了 /usr/local/cuda-12.8 目录下。
接下来,我们需要将 /usr/local/cuda-12.8/bin 目录添加到系统的 PATH 环境变量中,以便系统能够找到 nvcc 等命令。
b) 配置环境变量环境变量的配置需要根据你的系统类型(Bash 或 Zsh)来操作。
确认当前使用的 Shell
首先,确认你当前使用的 Shell 是 Bash 还是 Zsh。
我们可以通过以下命令查看:
echo $SHELL
• 如果输出是 /bin/bash ,则使用 Bash。
• 如果输出是 /bin/zsh ,则使用 Zsh。

c)编辑环境变量配置文件
以下是常见的配置方法:
对于 Bash 用户
编辑 ~/.bashrc 文件,
nano ~/.bashrc
添加以下内容:
export PATH=/usr/local/cuda-12.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
• 按下 Ctrl + X ,然后按 Y 确认保存,最后按 Enter 完成退出。
保存文件后,运行以下命令使变量生效:
source ~/.bashrc
对于 Zsh 用户
编辑 ~/.zshrc 文件,
nano ~/.bashrc
添加相同的内容 :
export PATH=/usr/local/cuda-12.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
保存文件后,运行以下命令使变量生效(选其一):
source ~/.bashrc # 如果是 Bash 用户
source ~/.zshrc # 如果是 Zsh 用户
5. 验证环境变量
配置完成后,运行以下命令验证:
echo $PATH
6. 测试 nvcc
运行 nvcc -V 或nvcc --version
,检查输出是否正确。
nvcc -V
或者:
nvcc --version
如果配置正确,你会看到类似以下的输出:
love@AI:~$ ls /usr/local/cuda-12.8
DOCS README compute-sanitizer extras include libnvvp nvml share targets version.json
EULA.txt bin doc gds lib64 nsightee_plugins nvvm src tools
love@AI:~$ echo $SHELL
/bin/bash
love@AI:~$ nano ~/.bashrc
love@AI:~$ source ~/.bashrc
love@AI:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0
love@AI:~$

至此,CUDA算是安装成功并得到验证。
7.驱动程序安装程序(建议)

在官方CUDA安装命令下方,有以下命令选项,强烈建议在验证完CUDA安装正确后,再次运行以下命令(任选其一)以确保安装程序的未来兼容性。
NVIDIA 驱动程序说明(选择一个选项)
要安装 open kernel module 风格:
sudo apt-get install -y nvidia-open
要安装旧版内核模块风格:
sudo apt-get install -y cuda-drivers

NVIDIA 驱动程序提供了两种内核模块风格:open kernel module(开源内核模块)和旧版内核模块(proprietary kernel module,专有内核模块)。这两种风格的主要区别在于它们的许可证类型、支持的功能和兼容性。
open kernel module 风格
• 许可证:开源,通常采用 MIT/GPLv2 许可证。
• 支持的 GPU 架构:支持 Turing 及以后的 GPU 架构。
• 支持的功能:支持大多数 Linux GPU 驱动程序的功能,包括 CUDA、Vulkan、OpenGL、OptiX 和 X11。此外,还有一些功能是仅 open kernel modules 支持的,例如 NVIDIA Confidential Computing、Magnum IO GPUDirect Storage(GDS)、Heterogeneous Memory Management(HMM)、CPU affinity for GPU fault handlers 和 DMABUF support for CUDA allocations。
• 兼容性:可能不支持所有旧版专有内核模块支持的特性,例如 NVIDIA virtual GPU(vGPU)、G-Sync on notebooks 和 Preserving video memory across power management events。

旧版内核模块风格
• 许可证:专有,由 NVIDIA 提供。
• 支持的 GPU 架构:支持 Maxwell、Pascal、Volta、Turing 和之后的 GPU 架构。
• 支持的功能:支持所有 NVIDIA GPU 驱动程序的功能,包括那些可能在 open kernel modules 中尚未支持的特性。
• 兼容性:通常更稳定,特别是在支持较旧的硬件和特定的企业级应用场景中。
新手用户推荐
对于新手用户,推荐安装open kernel module 风格的驱动程序,原因如下:
• 开源:更透明,社区支持更广泛。
• 更新:通常包含最新的功能和改进。
• 兼容性:对于大多数现代应用和游戏来说,open kernel modules 提供的兼容性已经足够。
然而,如果你有特定的需求,比如需要使用专有驱动程序中特有的功能,或者你的硬件较旧,可能需要旧版内核模块风格。
在安装驱动程序之前,建议先阅读 NVIDIA 的官方文档,了解不同风格的详细区别和推荐使用场景。此外,确保我们的系统满足安装要求,并按照官方指南进行操作,以避免潜在的兼容性问题。
(二)安装cuDNN
打开CUDA官方网址<建议“deb(network)”方式较为省事>,完整复制全部命令粘贴进WSL2-Ubuntu终端中按回车键运行。
cuDNN 9.8.0 Downloads | NVIDIA Developer
选项如图所示:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cudnn
1、复制图片/官网下边的全部命令,粘贴到WSL2-Ubuntu终端窗口中,按ENTER键运行

2、执行命令后会自动进行下载和安装:


3、暂时性地验证 cuDNN 安装
此时,暂时性地验证 cuDNN 安装是否成功可以通过以下方法:
检查文件路径的方法
cuDNN 的库文件通常会被安装到`/usr/lib/x86_64-linux-gnu`或`/usr/local/cuda/lib64`目录下。你可以通过以下命令检查这些文件是否存在:
ls /usr/lib/x86_64-linux-gnu/libcudnn*
输出应该如下所示:
love@AI:~$ ls /usr/lib/x86_64-linux-gnu/libcudnn*
/usr/lib/x86_64-linux-gnu/libcudnn.so
/usr/lib/x86_64-linux-gnu/libcudnn.so.9
/usr/lib/x86_64-linux-gnu/libcudnn.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_adv.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_adv_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_adv_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_cnn.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_precompiled_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_engines_runtime_compiled_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_graph.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_graph_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_graph_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_heuristic_static_v9.a
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9
/usr/lib/x86_64-linux-gnu/libcudnn_ops.so.9.8.0
/usr/lib/x86_64-linux-gnu/libcudnn_ops_static.a
/usr/lib/x86_64-linux-gnu/libcudnn_ops_static_v9.a
从我的提供的输出结果来看,cuDNN 库文件已经成功安装在`/usr/lib/x86_64-linux-gnu`目录下,而不是`/usr/local/cuda/lib64`。这说明 cuDNN 的安装路径是正确的,并且系统已经正确配置了相关的库文件。

以下是验证结果解释:
• cuDNN 库文件存在:
• 我已经找到了多个 cuDNN 的动态链接库(如`libcudnn.so`、`libcudnn.so.9`、`libcudnn.so.9.8.0`)和静态库(如`libcudnn_adv_static.a`、`libcudnn_cnn_static_v9.a`等)。
• 这些文件的存在表明 cuDNN 已正确安装。
• CUDA 目录下没有 cuDNN 文件:
• `/usr/local/cuda/lib64`目录下没有找到 cuDNN 文件,这是因为 cuDNN 的安装路径是`/usr/lib/x86_64-linux-gnu`,而不是`/usr/local/cuda`。
• 这是正常的,因为 cuDNN 的安装路径通常由系统包管理器(如`apt`)决定,而不是手动安装到 CUDA 的目录下。
小结:从我的输出结果来看,cuDNN 已正确安装在 /usr/lib/x86_64-linux-gnu 目录下。
接下来我们将通过安装Anaconda之后,在与系统隔离的虚拟环境中安装Pytorch来完全地验证CUDA和cuDNN的安装是否正确。
(三)安装Anaconda
通过查询,截止2025年03月06日,最新版本Anaconda完整文件名为:Anaconda3-2024.10-1-Linux-x86_64.sh
1、通过以下命令下载和安装:
复制命令粘贴到WSL2-Ubuntu终端窗口中,按ENTER键运行
wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh # 下载anaconda安装包至 /tmp 目录下
bash /tmp/Anaconda3-2024.10-1-Linux-x86_64.sh # 安装anaconda

2、执行命令后会自动进行下载完成后会进入安装步骤:
此时要点击ENTER键后一直按着不松开,来翻页阅读安装前协议

继续按着ENTER键不松手,直到出现输入框才停止
一直按到出现输入框,按多了也没关系,不输入就不能继续
用键盘手动输入“yes”,之后按ENTER回车键确认输入。然后进入到下边这个界面:
这会会询问安装位置,默认不修改则继续按一次ENTER键确认使用默认安装路径:

之后安装会询问:是否要集成到shell当中,自动进入默认虚拟环境?

建议输入“yes”

此时安装完成。
建议关闭终端,然后重新打开,看看是否自动进入默认的conda的base虚拟环境了:
可以看到重新打开WSL2-Ubuntu终端后已自动激活base默认的Anaconda虚拟环境了。
3、验证Anaconda的安装
验证 Conda 安装是否成功可以通过以下几种方法。这些方法可以帮助你确认 Conda 是否正确安装,并且能够正常运行。
方法 1:检查 Conda 版本
运行以下命令来检查 Conda 的版本号。如果 Conda 安装成功,它会显示当前的版本信息:
conda --version
如果输出类似以下内容,则说明 Conda 安装成功:

如果没有输出,或者提示`conda: command not found`,则说明 Conda 没有正确安装,或者其路径没有被添加到系统的环境变量中。
方法 2:检查 Conda 环境
运行以下命令来查看当前的 Conda 环境列表:
conda env list
如果 Conda 安装成功,你会看到类似以下的输出,列出所有已创建的 Conda 环境:

方法 3:创建并激活新的 Conda 环境
你可以创建一个新的 Conda 环境并激活它,以验证 Conda 的功能是否正常:
• 创建新的环境:
conda create -n testenv python=3.9
• 激活环境:
conda activate testenv
• 检查当前环境:
conda info --envs
如果输出显示当前激活的环境是`testenv`,则说明 Conda 正常工作:
# conda environments:
#
base /home/love/miniconda3
testenv * /home/love/miniconda3/envs/testenv
```
方法 4:安装并验证 Python 包
在激活的 Conda 环境中,安装一个常用的 Python 包(如`numpy`),并验证其是否正常工作:
• 安装包:
conda install numpy
• 验证安装:
python -c "import numpy; print(numpy.__version__)"
如果输出显示了`numpy`的版本号(例如`1.23.4`),则说明 Conda 和 Python 环境正常工作。
方法 5:检查 Conda 配置
运行以下命令来检查 Conda 的配置信息:
conda config --show
这将显示 Conda 的配置文件路径、默认环境路径、通道(channels)等信息。如果输出正常,说明 Conda 的配置文件没有问题。
方法 6:检查 Conda 的初始化
如果你在安装 Conda 后没有运行初始化命令,可能会导致`conda`命令无法正常使用。运行以下命令来初始化 Conda:
conda init
然后重新打开终端窗口,再次运行`conda --version`来验证。
conda --version
小结
通过以上方法,你可以全面验证 Conda 是否正确安装并正常工作。如果在验证过程中遇到问题,请检查以下内容:
• 确保 Conda 的安装路径已添加到系统的环境变量中。
• 确保 Conda 初始化完成。
• 如果仍然有问题,可以尝试重新安装 Conda。
三、安装Pytorch并验证CUDA12.8、cuDNN、Anaconda、Pytorch的安装
(一)安装Pytorch

我们就用默认的base环境来安装torch进行验证WSL2-Ubuntu的整个深度学习环境的搭建是否成功

目前CUDA12.8版本还不支持conda命令安装,今后torch官方会更新出conda包,我们就先用官方给的pip命令安装Preview (Nightly)版:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

过一会后安装完成:
接下来我们将用这个重要的深度学习库来验证之前的所有安装。
(二)用Pytorch并验证CUDA12.8、cuDNN、Anaconda、Pytorch的安装
先关闭WSL2-Ubuntu终端后,重新打开WSL2-Ubuntu终端;
在WSL2-Ubuntu终端内输入“python”并回车调起python:
python

复制以下整段代理粘贴后按ENTER回车键支持验证:
import torch # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device) # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z) # 输出张量 z 的内容
如果输出如下,则表明CUDA12.8、cuDNN、Anaconda、Pytorch全部安装成功!

从上边的输出来看,你已经成功地在 Python 中导入了 PyTorch,并且确认了 CUDA 和 cuDNN 的可用性。你的代码运行正常,并且 PyTorch 正在使用 GPU(`cuda:0`)进行计算。以下是对代码和输出的总结:
(base) love@AI:~$ python
Python 3.12.7 | packaged by Anaconda, Inc. | (main, Oct 4 2024, 13:27:36) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch # 导入 PyTorch 库
"PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device) # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z) # 输出张量 z 的内容>>>
>>> print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号
PyTorch 版本: 2.7.0.dev20250306+cu128
>>>
>>> # 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
>>> device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
>>> print("设备:", device) # 打印当前使用的设备
设备: cuda:0
>>> print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
CUDA 可用: True
>>> print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用
cuDNN 已启用: True
>>>
>>> # 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
>>> print("支持的 CUDA 版本:", torch.version.cuda)
支持的 CUDA 版本: 12.8
>>> print("cuDNN 版本:", torch.backends.cudnn.version())
cuDNN 版本: 90701
>>>
>>> # 创建两个随机张量(默认在 CPU 上)
>>> x = torch.rand(5, 3)
>>> y = torch.rand(5, 3)
>>>
>>> # 将张量移动到指定设备(CPU 或 GPU)
>>> x = x.to(device)
>>> y = y.to(device)
>>>
>>> # 对张量进行逐元素相加
>>> z = x + y
>>>
>>> # 打印结果
>>> print("张量 z 的值:")
张量 z 的值:
>>> print(z) # 输出张量 z 的内容
tensor([[0.8231, 0.9657, 1.3131],[0.8789, 1.4404, 0.8304],[0.8528, 1.3328, 1.9110],[1.0722, 0.6289, 1.4093],[1.1559, 0.8878, 0.5438]], device='cuda:0')
>>>
---
代码运行结果:
PyTorch 版本: 2.7.0.dev20250306+cu128
设备: cuda:0
CUDA 可用: True
cuDNN 已启用: True
支持的 CUDA 版本: 12.8
cuDNN 版本: 90701
---
关键信息:
• PyTorch 版本:`2.7.0.dev20250306+cu128`
• 这是一个开发版本(`dev`),并且是针对 CUDA 12.8 的版本。
• 设备:`cuda:0`
• 表示 PyTorch 已成功检测到 GPU,并将使用第一个 GPU 设备。
• CUDA 和 cuDNN:
• CUDA 可用:`True`,表示系统支持 CUDA,PyTorch 可以利用 GPU 加速。
• cuDNN 已启用:`True`,表示 cuDNN 已启用,这有助于进一步加速深度学习任务。
• 支持的 CUDA 版本:`12.8`,表示 PyTorch 支持 CUDA 12.8。
• cuDNN 版本:`90701`(即 cuDNN 9.7.1)。
---
如果我们遇到任何问题(例如 CUDA 不可用),请确保:
• 检查 GPU 驱动和 CUDA 安装:
• GPU 驱动是最新的。
• 安装了正确版本的 CUDA 和 cuDNN。
• PyTorch 版本与 CUDA 版本兼容。
---
【Windows 11 中部署 Linux 项目 - CSDN App】https://blog.csdn.net/u014451778/article/details/144777265?sharetype=blog&shareId=144777265&sharerefer=APP&sharesource=u014451778&sharefrom=link
至此,在Windosw系统上的WSL2-Ubuntu深度学习环境配置完成,可以在Windosw系统上优雅地借助Windosw的易用性和Linux系统的高效性进行项目部署和开发调试了。
相关文章:
在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch并验证安装
#记录工作 提示:整个过程最好先开启系统代理,也可以用镜像源,确保有官方发布的最新特性和官方库的完整和兼容性支持。 期间下载会特别慢,需要在系统上先开启代理,然后WSL设置里打开网络模式“Mirrored”,以设置WSL自动…...
LLM论文笔记 19: On Limitations of the Transformer Architecture
Arxiv日期:2024.2.26机构:Columbia University / Google 关键词 Transformer架构幻觉问题数学谜题 核心结论 1. Transformer 无法可靠地计算函数组合问题 2. Transformer 的计算能力受限于信息瓶颈 3. CoT 可以减少 Transformer 计算错误的概率&#x…...
基于51单片机的智能水箱控制系统proteus仿真
地址:https://pan.baidu.com/s/1zgG90VB5TEA05O2ZkKC3CA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectroni…...
Process-based Self-Rewarding Language Models 论文简介
基于过程的自奖励语言模型:LLM优化的新范式 引言 大型语言模型(LLM)在多种任务中展现出了强大的能力,尤其是在使用人工标注的偏好数据进行训练时。然而,传统的自奖励范式在数学推理任务中存在局限性,甚至…...
虚拟系统实验
实验拓扑 启动虚拟系统 [FW]vsys enable 配置资源类 先查看 配置 创建虚拟系统 [USG6000V1]vsys name vsysa 绑定资源类 [USG6000V1-vsys-vsysa]assign resource-class r1 将接口划入虚拟系统 [USG6000V1-vsys-vsysa]assign interface GigabitEthernet 1/0/1 公共接口 --- 勾…...
mybatis报错org/apache/commons/lang3/tuple/Pair] with root cause
mybatis一对多查询配置resultMap映射报错org/apache/commons/lang3/tuple/Pair] with root cause 原因是mybatis依赖common-lang3这个包, 只需要添加common-lang3的依赖坐标即可: <dependency><groupId>org.apache.commons</groupId><artifactId>comm…...
V90伺服电机初调试
分配设备IP地址 打开博途,将IP地址分配给对应伺服 打开V-ASSISTANT软件,刷新后读取硬件。VASSISTANT软件选择指定伺服,点击设备调试, 在控制模式选项中选择基本定位器控制(EPOS) 在设置PROFINET-选择报文页…...
Air780EPM:SIM 卡接口设计指导来啦~
在数字化浪潮中,SIM卡作为通信设备的“身份证”,早已成为人们生活中不可或缺的存在。 以下详细阐述了SIM卡接口如何通过读取卡片信息完成4G网络鉴权,并支持双卡切换功能,使设备能够灵活选择最优网络。这种看似简单的机制…...
DNS云解析有什么独特之处?
在数字化浪潮中,每一次网页点击、视频加载或在线交易背后,都依赖着域名系统(DNS)的高效运转。传统DNS架构的局限性(如单点故障、延迟高、安全脆弱)在云计算时代被彻底颠覆,DNS云解析作为新一代解…...
VMware Workstation安装rocky9.5虚拟机
1、在镜像源网站中下载rocky镜像源,下载dvd版(图像,软件全部都有,其他版本还需下载图像),这里我使用的镜像源网站是ubuntu-releases安装包下载_开源镜像站-阿里云 2、找到isos: 3、找x86_64/ 4、…...
stack,queue与deque
一.模拟实现stack和queue STL中的stac和queuek是通过容器适配器来实现的,并不是直接实现栈。那什么是容器适配器呢? 举一个简单的例子,不同的插座需要不同的插头来连接,这时候我们用一个插座适配器,我们就不需要关心…...
Git清理本地残留的、但已经在服务器上被删除的分支
要筛选出已经被服务器删除的本地分支,并在本地删除这些分支,可以按照以下步骤进行操作: 步骤 1: 获取远程分支信息,确保本地的远程分支信息是最新的: git fetch -p步骤 2: 列出本地分支和远程分支: git …...
概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别
目录 消息生命周期 一、消息创建与发布阶段 二、消息路由与存储阶段 三、消息存活与过期阶段 四、消息投递与消费阶段 五、消息生命周期终止 关键配置建议 待消费的消息和待应答的消息 一、待消费的消息(Unconsumed Messages) 二、待应答的消息…...
【c++】时间复杂度与数据规模的对应关系
一、时间复杂度与数据规模的对应关系 (以单核CPU每秒处理 (10^6) 次操作为基准) 数据规模(n)可接受的时间复杂度最大操作次数估算适用算法示例≤ (10^2)O(n)、O(2ⁿ)≤ 1,000,000暴力搜索、全排列枚举≤ (10^4)O(n)、O(n log n)≤ (10^8)冒泡排序、Flo…...
多模态知识图谱融合
1.Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 1.1多模态实体对齐 1.2多模态实体链接 研究进展&#...
虚拟机配置nat上网
参考: https://www.jb51.net/server/33323640v.htm https://blog.csdn.net/m0_61560049/article/details/131502564 通过命令修改网络参数: sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 sudo route add default gw 192.168.1.1 eth0 通过…...
多宠识别:基于计算机视觉的智能宠物管理系统架构解析
一、行业痛点与技术方案演进 在多宠家庭场景中,传统方案面临三大技术瓶颈: 1. 生物特征混淆:同品种/毛色宠物识别准确率低于65% 2. 动态场景适应:进食/奔跑状态下的误检率达30% 3. 数据孤岛问题:离线设备无法实现持续…...
蓝桥杯-15届研究生组-A 劲舞团
思路和时间复杂度 思路:签到模拟题,但是思路也很重要,在K的重新赋值时,卡了一下,在不满足时间条件时,应该重置为1时间复杂度: 代码 #include <iostream> #include<cmath>…...
不小心更改了/etc权限为777导致sudo,ssh等软件都无法使用
修复流程 一、进入恢复模式(无网络或无法登录时必选) 1.重启系统,在 GRUB 启动菜单选择 Recovery Mode(按 Shift 或 Esc 呼出菜单)。2.以 root 身份挂载为可读写: bash 复制 mount -o remount,rw /确保文…...
最长重复子数组、最长公共子序列、判断子序列
20250307 题目区别dp数组含义的区别dp数组状态转移方程 代码随想录: 最长重复子数组 最长公共子序列 判断子序列 题目区别 最长重复子数组(连续): 最长公共子序列(不连续): 判断子序列 dp数…...
【数据分析】转录组基因表达的KEGG通路富集分析教程
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍差异分析(limma)KEGG富集分析(enrichKEGG)可视化加载R包数据下载导入数据基因差异分析火山图KEGG通路富集分析可视化通路结果另一个案例总结系统信息参考介绍 KEGG富集分析,可…...
SpringBoot - 用责任链模式实现业务编排
文章目录 前因责任链:像工作台一样组织代码CodeSEQ3.1 定义处理器规范3.2 实现具体处理器3.3 共享上下文3.4 组装责任链 适用场景优势 前因 2000多行的业务逻辑里,各种校验规则、促销计算、库存操作像意大利面条一样缠绕在一起。最要命的是这样的代码结…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数
声明在 src/core/ngx_cycle.h ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle);实现在 src/core/ngx_cycle.c ngx_cycle_t * ngx_init_cycle(ngx_cycle_t *old_cycle) {void *rv;char **senv;ngx_uint_t i, n;ngx_log_t …...
Vue 使用 vue-router 时,多级嵌套路由缓存问题处理
Vue 使用 vue-router 时,多级嵌套路由缓存问题处理 对于三级菜单(或多级嵌套路由),vue 都是 通过 keep-alive 组件来实现路由组件的缓存。 有时候三级或者多级路由时,会出现失效情况。以下是三级菜单缓存的例子。 最…...
ResNet 改进:轻量级的混合本地信道注意机制MLCA
目录 1. MLCA注意力机制 2. 改进位置 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. MLCA注意力机制 MLCA(Mixed Local Channel Attention)是一种轻量级的混合本地信道注意机制,旨在提升卷积神经网络(CNN)在图像处理…...
【第22节】C++设计模式(行为模式)-Iterator(迭代器)模式
一、问题背景 Iterator 模式是设计模式中最为常见和实用的模式之一。它的核心思想是将对聚合对象的遍历操作封装到一个独立的类中,从而避免暴露聚合对象的内部表示。通过 Iterator 模式,我们可以实现对聚合对象的统一遍历接口,而不需要关心聚…...
FreeRTOS第15篇:FreeRTOS链表实现细节03_List_t与ListItem_t的奥秘
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 1 FreeRTOS列表的核心数据结构 FreeRTOS的列表实现由两个关键结构体组成:List_t(列表)和ListItem_t(列表项)。它们共同…...
【Node.js入门笔记1---初始Node.js)】
Node.js入门笔记1 初始Node.js1.Node.js简介2.Node.js中js的运行环境3.Node.js 可以做什么4.Node.js 怎么学 初始Node.js 1.Node.js简介 Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它让开发者可以用 Java…...
PyTorch基础语法万字解析
第一章:张量基础(Tensor Fundamentals) 1.1 张量创建 在PyTorch中,张量(Tensor)是用于表示数据的基本单元。它类似于NumPy中的数组,但额外支持GPU加速和自动微分功能。以下是几种创建张量的方…...
eclipse查看源码
查看 Collection 源码的步骤 打开 Eclipse。 在代码中定位到 Collection 接口: 例如,在代码中输入 Collection,然后按住 Ctrl 键并单击 Collection。 或者直接在代码中使用 Collection 的地方按 F3 键。 如果源码已关联: Ecl…...
