【2025深度学习环境搭建-2】pytorch+Docker+VS Code+DevContainer搭建本地深度学习环境

devtools/2025/3/1 0:54:53/

上一篇文章:【2025深度学习环境搭建-1】在Win11上用WSL2和Docker解锁GPU加速

  • 先启动Docker!
  • 对文件内容有疑问,就去问AI

pytorchGPU_3">一、用Docker拉取pytorch镜像,启动容器,测试GPU

docker pull pytorch/pytorch:2.5.0-cuda12.4-cudnn9-devel

在这里插入图片描述
docker run -it --rm --gpus all pytorch/pytorch:2.5.0-cuda12.4-cudnn9-devel nvidia-smi

别忘了用--gpus all启用GPU

在这里插入图片描述
能出现显卡信息,说明基于该镜像的容器,是可以用gpu的。之后要把这个镜像应用到到我们的开发环境之中(使用VS Code插件Dev Container)

二、安装VS Code插件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pytorchGPUpython_29">三、创建项目文件(测试pytorch和GPU的python程序)

创建文件夹pytorch-test,并在其目录下创建如下文件夹和文件(主要创建app.py和.devcontainer就行,其他的随意):
在这里插入图片描述

需要创建的文件,内容如下:

requirements.txt

这个文件内容为空

app.py

import torch
a=[1,23,4,5,.4]
def print_gpu_info():# 检查CUDA是否可用cuda_available = torch.cuda.is_available()print(f"CUDA 是否可用: {cuda_available}")if not cuda_available:return# 获取GPU数量device_count = torch.cuda.device_count()print(f"\n可用的GPU数量: {device_count}")# 打印每个GPU的详细信息for i in range(device_count):print(f"\n=== GPU {i} ===")print(f"名称: {torch.cuda.get_device_name(i)}")prop = torch.cuda.get_device_properties(i)print(f"总内存: {prop.total_memory / 1024**3:.2f} GB")print(f"多处理器数量: {prop.multi_processor_count}")print(f"计算能力: {prop.major}.{prop.minor}")def test_gpu_operation():# 尝试在GPU上执行操作if torch.cuda.is_available():try:# 创建测试张量x = torch.randn(3, 3).cuda()y = torch.randn(3, 3).cuda()z = x + y  # 执行GPU计算# 验证设备类型print("\n=== GPU 操作测试 ===")print(f"张量所在设备: {x.device}")print("GPU 计算成功!")return Trueexcept Exception as e:print(f"\nGPU 操作失败: {str(e)}")return Falseelse:print("没有可用的GPU进行测试")return Falseif __name__ == "__main__":print("===== PyTorch GPU 信息 =====")print_gpu_info()print("\n===== GPU 功能测试 =====")test_result = test_gpu_operation()print("\n===== 最终状态 =====")print(f"GPU 是否可用: {torch.cuda.is_available()}")print(f"GPU 是否可用: {test_result}")print(f"PyTorch 版本: {torch.__version__}")

.devcontainer/devcontainer.json

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-dockerfile
{"name": "GPU Development,torch2.5+cu124+cudnn9,Py3.11.10","runArgs": ["--gpus=all"  // 添加 GPU 支持],"build": {// Sets the run context to one level up instead of the .devcontainer folder."context": "..",// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename."dockerfile": "Dockerfile"},"customizations": {"vscode": {"extensions": ["ms-python.python","ms-toolsai.jupyter","ms-python.autopep8","ms-python.vscode-pylance","mechatroner.rainbow-csv","ms-azuretools.vscode-docker","ms-toolsai.datawrangler"]}}// Features to add to the dev container. More info: https://containers.dev/features.// "features": {},// Use 'forwardPorts' to make a list of ports inside the container available locally.// "forwardPorts": [],// Uncomment the next line to run commands after the container is created.// "postCreateCommand": "cat /etc/os-release",// Configure tool-specific properties.// "customizations": {},// Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root.// "remoteUser": "devcontainer"
}

.devcontainer/Dockerfile

# 使用 PyTorch 官方镜像作为基础镜像
FROM pytorch/pytorch:2.5.0-cuda12.4-cudnn9-devel# 设置工作目录(容器中的)
WORKDIR /workspace# 将本地代码复制到容器中
COPY . /workspace# 安装额外的依赖(如果有)
RUN pip install --no-cache-dir -r requirements.txt# 暴露端口(如果有需要)
# EXPOSE 8000# 定义容器启动时运行的命令
# CMD ["python", "app.py"]

README.md

## pip环境导入导出
从requirements.txt导入环境:
`pip install --no-cache-dir -r requirements.txt`
导出环境到文件requirements.txt:
`pip freeze | grep -v '@ file://' > requirements.txt`

四、打开项目文件,并使用容器环境

在VS Code中打开项目文件
在这里插入图片描述
按下【F1】在上方选择【Dev Containers:Reopen in Container】
在这里插入图片描述
此时查看vscode左下角,蓝底白字,显示Dev Container: GPU Development,torch2.5+..,就说明我们现在的项目torch-test已经在使用刚才拉取的pytorch容器了!
在这里插入图片描述
在左边找到app.py,运行他,若显示可用gpu大于0,表示项目torch-test中的python程序可以使用gpu。之后我们需要运行深度学习程序时,使用这里的步骤即可,不需要安装额外的python环境了,若需要安装其他包,那就修改requirements.txt文件即可。

在这里插入图片描述

五、需要安装其他python包怎么办?

若我们需要其他python包,那就在终端直接安装,测试能用之后,用pip freeze | grep -v '@ file://' > requirements.txt将当前python环境中的包导出到文件requirements.txt中。
之后再启动项目时,Dev Container会自动帮我们根据文件requirements.txt安装环境。

清空文件requirements.txt中的内容,之后重新构建容器,即可得到一个原始镜像中的python环境

补充:如何重新构建容器

按【F1】,搜索【Dev Containers:Rebuild Container】

在这里插入图片描述

补充:在镜像中添加VS Code插件

可以在镜像中添加VS Code插件,之后每次构建,镜像都会自动安装插件,不用自己手动安装了

方法:右键单击插件,点击【Add to devcontainer.json】

在这里插入图片描述

参考

教程:使用 Visual Studio Code 创建 Docker 应用

借助 Visual Studio Code 将 Docker 容器用作开发环境


http://www.ppmy.cn/devtools/163486.html

相关文章

游戏引擎学习第123天

仓库:https://gitee.com/mrxiao_com/2d_game_3 黑板:线程同步/通信 目标是从零开始编写一个完整的游戏。我们不使用引擎,也不依赖任何库,完全自己编写游戏所需的所有代码。我们做这个节目不仅是为了教育目的,同时也是因为编程本…

Pytorch使用手册—使用TACOTRON2进行文本到语音转换(专题二十四)

一、概述 本教程展示了如何使用torchaudio中的预训练Tacotron2构建文本到语音的管道。 文本到语音的管道流程如下: 文本预处理 首先,输入的文本被编码为一系列符号。在本教程中,我们将使用英语字符和音标作为符号。 谱图生成 从编码后的文本中生成谱图。我们使用Tacotron2…

鸿蒙 ArkUI 实现 2048 小游戏

2048 是一款经典的益智游戏,玩家通过滑动屏幕合并相同数字的方块,最终目标是合成数字 2048。本文基于鸿蒙 ArkUI 框架,详细解析其实现过程,帮助开发者理解如何利用声明式 UI 和状态管理构建此类游戏。 一、核心数据结构与状态管理…

1. EXCEL基础、界面介绍《AI赋能Excel 》

欢迎来到滔滔讲AI。 Excel表格是一种强大的电子表格软件,它不仅可以用来存储和组织数据,还可以进行复杂的计算、数据分析和可视化。无论是在工作,学习,还是日常生活中,Excel都经常用到,帮助人们管理和分析大量数据,做出…

浅谈Linux中的软件包管理器——基于ubuntu环境

文章目录 1. 为什么要使用软件包管理器1.1 使用源码1.2 使用rpm安装包1.3 使用apt软件包管理器 2. 如何使用apt2.1 软件的安装和卸载2.2 查找和搜素软件包2.3 更新并升级软件包2.4 清理缓存 3. 从apt到系统生态 1. 为什么要使用软件包管理器 在Linux中,有三种软件安…

Python学习第十七天之PyTorch保姆级安装

PyTorch安装与部署 一、准备工作二、pytorch介绍三、CPU版本pytorch安装1. 创建虚拟环境2. 删除虚拟环境1. 通过环境名称删除2. 通过环境路径删除 3. 配置镜像源4. 安装pytorch1. 首先激活环境变量2. 进入pytorch官网,找到安装指令 5. 验证pytorch是否安装成功 四、…

火语言RPA--Excel设置列宽

【组件功能】:为Excel内指定列设置列宽 配置预览 列名 支持T或# Excel文档的列名,从字母A开始。 列宽样式 指定列宽:指定列宽数值 内容自适配:根据内容自动设置列宽 列宽 支持T或# 列宽值单位字符宽度,一个汉字两…

【deepseek】本地部署+RAG知识库挂载+对话测试

文章目录 前言一、Deepseek模型下载(以7B为例)二、RAG本地知识库挂载三、创建本地对话脚本四、结果展示 前言 本文主要涵盖Deepseek在ubuntu系统中的部署全流程,包括模型的下载、系统部署、本地文档向量化、向量列表存储、RAG知识库挂载、对话测试等内容 一、Deeps…