如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
PyTorch Lightning是一个轻量级的PyTorch包装器,旨在简化高性能AI研究。该Docker镜像封装了PyTorch Lightning及其依赖环境,提供了一个即开即用的深度学习研究平台。
PyTorch Lightning的核心思想是将PyTorch代码解耦,分离科研逻辑与工程实现,让研究人员能够专注于模型本身而非训练循环等工程细节。
拉取镜像
bashdocker pull pytorchlightning/pytorch_lightning
运行交互式容器
bashdocker run -it --rm pytorchlightning/pytorch_lightning /bin/bash
单文件训练脚本部署
docker run命令示例:
bashdocker run -it --rm \ --gpus all \ -v $(pwd):/workspace \ -w /workspace \ pytorchlightning/pytorch_lightning \ python train.py
docker-compose配置示例
创建docker-compose.yml文件:
yamlversion: '3' services: lightning-training: image: pytorchlightning/pytorch_lightning volumes: - ./:/workspace working_dir: /workspace command: python train.py deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] environment: - CUDA_VISIBLE_DEVICES=0,1 # 指定使用的GPU - PYTHONUNBUFFERED=1 # 实时输出日志
启动服务:
bashdocker-compose up
PyTorch Lightning的主要配置通过Trainer类实现,常用参数包括:
max_epochs: 最大训练轮数gpus: 使用的GPU数量,可指定具体GPU索引tpu_cores: 使用的TPU核心数num_nodes: 分布式训练的节点数量precision: 训练精度,支持16位和32位logger: 日志记录器配置callbacks: 回调函数列表CUDA_VISIBLE_DEVICES: 指定容器可见的GPU设备PYTHONPATH: Python模块搜索路径PL_TORCH_DISTRIBUTED_BACKEND: PyTorch分布式后端,可选"nccl"或"gloo"PL_VERBOSITY: 日志详细程度,0-4(0=静默,4=调试)PL_ENABLE_WANDB: 是否启用Weights & Biases日志集成Step 1: 创建训练脚本 (train.py)
pythonimport os import torch from torch import nn import torch.nn.functional as F from torchvision.datasets import MNIST from torch.utils.data import DataLoader, random_split from torchvision import transforms import pytorch_lightning as pl class LitAutoEncoder(pl.LightningModule): def __init__(self): super().__init__() self.encoder = nn.Sequential(nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 3)) self.decoder = nn.Sequential(nn.Linear(3, 128), nn.ReLU(), nn.Linear(128, 28 * 28)) def forward(self, x): # inference/prediction时的前向传播 embedding = self.encoder(x) return embedding def training_step(self, batch, batch_idx): # 定义训练循环 x, y = batch x = x.view(x.size(0), -1) z = self.encoder(x) x_hat = self.decoder(z) loss = F.mse_loss(x_hat, x) return loss def configure_optimizers(self): optimizer = torch.optim.Adam(self.parameters(), lr=1e-3) return optimizer def main(): dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor()) train, val = random_split(dataset, [55000, 5000]) autoencoder = LitAutoEncoder() trainer = pl.Trainer(max_epochs=10) trainer.fit(autoencoder, DataLoader(train), DataLoader(val)) if __name__ == "__main__": main()
Step 2: 运行训练脚本
bashdocker run -it --rm \ --gpus all \ -v $(pwd):/workspace \ -w /workspace \ pytorchlightning/pytorch_lightning \ python train.py
无需修改模型代码,只需调整Trainer参数即可实现多GPU或TPU训练:
python# 8 GPUs训练 trainer = pl.Trainer(max_epochs=10, gpus=8) # 多节点训练 (256 GPUs) trainer = pl.Trainer(max_epochs=10, gpus=8, num_nodes=32) # TPU训练 (8个TPU核心) trainer = pl.Trainer(max_epochs=10, tpu_cores=8) # 单TPU核心训练 trainer = pl.Trainer(max_epochs=10, tpu_cores=[1])
pytorch-lightning)该镜像基于Apache 2.0许可证发布。Lightning框架正在申请专利。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务