抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

WSL 深度学习环境搭建

Win11,N卡

很多人只有一台Windows电脑,装双系统很麻烦,尤其是一个有N卡驱动的Linux,而WSL2环境搭建非常方便

之前有写过一篇Linux入门,但是内容记的太杂了,这里精简一下

安装WSL2

在Windows Terminal(如果没有,去微软的store中下载)中输入

wsl --install

默认会安装一个最新的Ubuntu

安装GCC 11

sudo apt update
sudo apt install gcc-11 g++-11

设置gcc版本优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 9

更新并保存环境变量

export PATH=/usr/bin:$PATH
source ~/.bashrc

测试gcc

gcc --version

如果没成功,试着重启wsl

安装CUDA 11.8

这个方法需要能访问外网,这里安装的是CUDA 11.8,需要其他版本可以在英伟达官网

寻找一个空间较大的目录(主要是怕你乱放),输入

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

输入accept和按install后,会弹出提示,按照提示配置环境变量

如果配置不上,你可以每次启动时都ctrl+R搜索这个export命令,每次都配置一次nvcc

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

安装Anaconda

官网下载

安装

bash Anaconda3-2024.10-1-Linux-x86_64.sh

激活

source <you anaconda path>/bin/activate
# source ~/anaconda3/bin/activate
conda init

访问WSL端口

在wsl中搭建web服务,在windows中访问,不需要做什么代理映射,非常方便

在wsl中输入

hostname -I

即可得到WSL的IP地址

Gradio

编写一个Gradio demo,并架设在wsl的localhost:7861

import gradio as gr

with gr.Blocks() as demo:
gr.Markdown('Hello, world!')

if __name__ == '__main__':
demo.launch(server_name='0.0.0.0', server_port=7861)

假设hostname -I获得的IP地址是172.23.105.49

在Windows浏览器中访问地址

172.23.105.49:7861

发现成功打开Gradio demo

安装Pytorch

创建一个conda环境(sd是环境的名称)

conda create -n sd python=3.10 pip
conda activate sd
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

设置huggingface

用学校邮箱注册huggingface审批更快,申请大模型时最好不要选择China,有可能被拒绝,可以选新加坡

很多AI模型都架设在huggingface中,hf默认会把cache存储在~/.cache下,考虑到模型都非常巨大,一般都会放在其他地方

export HF_HOME=/data/hf
source ~/.bashrc

在第一次使用hf时,需要先登陆,你需要在hf网站中获得一个Access Tokens,并在python中执行

from huggingface_hub import login

login(token="hf_xxxx")

SD3.5画图

尝试一下SD3.5画图,这是一个8B大模型

pip install -U diffusers
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained("stabilityai/stable-diffusion-3.5-large", torch_dtype=torch.bfloat16)
pipe = pipe.to("cuda")

image = pipe(
"A capybara holding a sign that reads Hello World",
num_inference_steps=28,
guidance_scale=3.5,
).images[0]
image.save("capybara.png")

评论