TorchCode 是一个基于 Jupyter 的自托管 PyTorch 面试练习环境,面向机器学习工程师。它提供 40 道精选题目,覆盖 PyTorch 基础与常见架构(如 softmax、LayerNorm、MultiHeadAttention、GPT-2 等),并配有自动判题器,可即时给出通过/失败反馈、梯度验证与计时,被形容为“张量版的 LeetCode”。
用途 TorchCode 用于练习从零实现 PyTorch 基础算子与模型架构,适合准备机器学习相关面试或希望深入理解底层实现的工程师。
主要能力
- 40 道精选题目,难度分为 Easy、Medium、Hard。
- 自动判题器 torch_judge,提供逐测试用例的彩色通过/失败结果、与 PyTorch 参考实现对比的正确性检查、梯度验证(autograd 兼容性)以及计时测量。
- 提供提示(hint)功能,不剧透答案。
- 支持重置单个题目的进度。
- 每个题目有空白模板(templates/)和参考解答(solutions/),便于先尝试后学习。
题目覆盖范围(部分示例)
- ReLU、Softmax、Linear Layer、LayerNorm、Self-Attention、Multi-Head Attention、BatchNorm、RMSNorm、Cross-Entropy Loss、Dropout、Embedding、GELU、Kaiming Init、Gradient Clipping、Gradient Accumulation、Linear Regression 等。
使用方式 安装与启动提供多种选项:
- 在线(零安装):Hugging Face Spaces(https://huggingface.co/spaces/duoan/TorchCode);Google Colab(每个 notebook 有 “Open in Colab” 徽章)。
- pip 安装(用于 Colab 或已有环境): pip install torch-judge
- Docker(预构建镜像):
docker run -p 8888:8888 -e PORT=8888 ghcr.io/duoan/torchcode:latest
打开 http://localhost:8888
- 本地构建:
git clone https://github.com/duoan/TorchCode.git
cd TorchCode
make run
打开 http://localhost:8888
make run 会自动检测 Docker 或 Podman,若镜像不可用(常见于 Apple Silicon/arm64)则回退到本地构建。
判题 API 使用示例: from torch_judge import check, status, hint, reset_progress status() # 列出全部 40 题及进度 check("relu") # 运行指定题目的测试 hint("softmax") # 获取提示 reset_progress("relu") # 重置进度
典型 notebook 工作流:导入判题器、编写实现、调用 check() 运行判题。
适用场景
- 准备 PyTorch/机器学习工程岗位面试。
- 从零实现并验证常见深度学习组件,加深对数值稳定性、autograd、训练/评估模式等概念的理解。
- 在本地或云端环境中进行自测式编程练习。
限制与注意事项
- 资料未提供收费、价格或商业授权信息。
- 资料未提供题目总数之外的完整题目清单细节,仅列出部分题目。
- 资料未提供对硬件、Python 版本或 PyTorch 版本的具体要求。
- 梯度检查失败但输出正确时,需确保实现使用 PyTorch 操作而非 NumPy,以保证 autograd 正常工作。
- 在 Colab 中若找不到 check(),需先执行 !pip install torch-judge 并重启运行时。
- Apple Silicon(arm64)上 Docker 镜像可能不可用,make run 会自动回退到本地构建,也可手动 make build 与 make start。
- JupyterLab 工具栏的 “Reset” 按钮可将 notebook 重置为空白模板,便于重新练习。