在WSL2的Ubuntu22.04上,用VSCode一站式搞定强化学习环境
1. 为什么选择WSL2Ubuntu22.04VSCode组合如果你是个Windows用户但又需要Linux环境来跑强化学习实验这个组合简直就是为你量身定制的。我去年接手一个机器人路径规划项目时尝试过双系统、虚拟机等各种方案最后发现WSL2才是真正的生产力神器。WSL2和普通虚拟机最大的区别在于它直接运行在Windows内核上性能损耗几乎可以忽略不计。实测在同样配置的机器上WSL2运行PyTorch训练比VMware快出30%以上。Ubuntu22.04作为长期支持版本软件生态稳定而VSCode的远程开发功能让你能在Windows下获得接近原生Linux的开发体验。最近帮学弟配置环境时发现用这个方案从零开始到运行第一个强化学习demo熟练的话20分钟就能搞定。下面我会手把手带你走完全流程包括几个我踩过坑的细节。2. 基础环境搭建2.1 WSL2安装避坑指南很多人第一步就会遇到问题。首先确保你的Windows版本是1903及以上建议直接更新到最新版。我遇到过最典型的问题是安装后无法启动这通常是因为没开启虚拟化重启电脑进入BIOS各品牌按键不同一般是F2/DEL找到Intel VT-x或AMD-V选项并启用在Windows功能中勾选虚拟机平台而不仅是WSL安装命令其实有更简单的写法wsl --install -d Ubuntu-22.04这个命令会自动完成所有准备工作包括启用必要组件和下载系统镜像。安装完成后建议立即执行wsl --update wsl --set-default-version 2这能确保你使用的是WSL2而不是旧版。我遇到过有人训练时性能异常排查半天发现还在用WSL1。2.2 Ubuntu22.04初始配置首次启动时会让你创建用户这里有个小技巧先创建普通用户完成基础配置后再切换root。因为有些软件如Docker对root用户有限制。换源是必须操作但别再用vim手动改了现在有更简单的方式sudo sed -i shttp://.*archive.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo sed -i shttp://.*security.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list这两行命令会自动替换所有官方源为清华镜像。3. 开发环境配置3.1 Python环境搭建的现代方案Ubuntu22.04默认带的是Python3.10但强化学习项目往往需要更灵活的版本管理。我强烈推荐使用pyenvcurl https://pyenv.run | bash echo export PATH$HOME/.pyenv/bin:$PATH ~/.bashrc echo eval $(pyenv init -) ~/.bashrc source ~/.bashrc安装后可以轻松切换Python版本pyenv install 3.9.13 pyenv global 3.9.13虚拟环境也建议使用python自带的venvpython -m venv ~/rl_env source ~/rl_env/bin/activate这样的环境隔离比直接安装到系统更干净。3.2 VSCode连接WSL的进阶技巧安装Remote-WSL插件后有个隐藏功能很实用在WSL终端输入code .会自动在Windows端启动VSCode并连接到当前目录。但更高效的做法是创建专用工作区在WSL中建立项目目录如~/rl_projects用VSCode打开该目录点击文件→将工作区另存为保存为rl.code-workspace这样下次可以直接双击工作区文件自动连接WSL并加载所有配置。4. 强化学习环境实战4.1 关键库安装的注意事项安装PyTorch时很多人直接pip install torch这可能会下载CPU版本。正确的姿势是pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118注意最后的cu118表示CUDA11.8要和你主机显卡驱动匹配。Gym库现在推荐安装新版本pip install gymnasium[all]这个版本包含了Box2D等所有依赖避免经典控制环境跑不起来的问题。4.2 经典小车案例调试这里以倒立摆(CartPole)为例创建一个完整的训练脚本import gymnasium as gym from stable_baselines3 import PPO env gym.make(CartPole-v1) model PPO(MlpPolicy, env, verbose1) model.learn(total_timesteps10000) obs, _ env.reset() for _ in range(1000): action, _ model.predict(obs) obs, _, done, _, _ env.step(action) if done: obs, _ env.reset()保存为train.py后在VSCode中按F5可以直接调试。我建议在launch.json中添加{ version: 0.2.0, configurations: [ { name: Python: Current File, type: python, request: launch, program: ${file}, console: integratedTerminal, justMyCode: false } ] }这样可以在调试时查看完整的变量信息。5. 性能优化与开发技巧5.1 GPU加速配置要让WSL2能用上显卡需要额外几步在Windows安装对应版本的CUDA驱动WSL内安装CUDA Toolkitwget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update sudo apt install cuda-toolkit-12-3验证是否成功nvidia-smi5.2 VSCode高效开发配置几个必装的扩展Python官方支持Jupyter方便写实验笔记Docker如果需要容器化GitLens代码版本管理我的快捷键习惯Ctrl快速切换终端CtrlP文件跳转F12转到定义AltZ自动换行对于大型项目建议在.vscode/settings.json中添加{ python.analysis.typeCheckingMode: basic, python.linting.pylintEnabled: true, editor.formatOnSave: true }6. 常见问题解决方案6.1 图形界面显示问题如果遇到Matplotlib无法显示图像可以这样解决import matplotlib matplotlib.use(Agg) # 非交互式模式 import matplotlib.pyplot as plt plt.plot([1,2,3]) plt.savefig(output.png) # 保存到文件或者安装X11转发Windows端安装VcXsrvWSL中设置export DISPLAY$(awk /nameserver / {print $2} /etc/resolv.conf):06.2 文件系统性能优化WSL2的磁盘IO在Windows目录下较慢建议将项目放在WSL原生文件系统如~/projects或者在/etc/wsl.conf添加[automount] options metadata,umask22,fmask117. 扩展应用场景这套环境其实非常适合课程实验如Berkeley的CS285论文复现大多数顶会代码都基于Linux算法原型开发我最近用它跑通了DeepMind的AlphaZero简化版整个过程比纯Windows环境顺畅很多。特别是当需要用到多进程时WSL2的表现比Windows原生好太多。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2428539.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!