| title | General Deep Learning |
|---|---|
| emoji | 🏃 |
| colorFrom | yellow |
| colorTo | gray |
| sdk | gradio |
| sdk_version | 6.12.0 |
| python_version | 3.12 |
| app_file | app.py |
| pinned | false |
| license | mit |
| short_description | A readable Keras project from training to Gradio deployment |
一个用同一套 Keras Pipeline 跑通文本生成、图片分类、语义分割和目标检测的教学型项目。每个任务都覆盖数据处理、模型构建、训练、检查点恢复、模型导出、样例测试和 Gradio 展示。
| 任务 | 模型 | 展示路径 |
|---|---|---|
| 中文维基文本续写 | GPT | /wiki_gpt |
| 中文诗歌生成 | GPT、RNN | /poetry_gpt、/poetry_rnn |
| 猫狗图片分类 | CNN | /image_classification |
| Oxford Pets 语义分割 | Encoder-Decoder CNN | /segmentation |
| COCO 目标检测 | 轻量 YOLO | /yolo |
这些实现用于展示完整任务结构,不追求替代成熟预训练模型或专业训练框架。
不配置本地环境时,可以直接访问 Hugging Face Space。免费实例休眠后首次唤醒和首次推理会稍慢,模型会在第一次使用对应任务时延迟加载。
本地运行:
git lfs install
git clone https://github.com/yetrun/general-deep-learning.git
cd general-deep-learning
git lfs pull
uv sync --group dev
uv run python app.py浏览器打开终端显示的本地地址,即可访问包含全部任务的 Gradio 应用。
模型、词表和示例图片使用 Git LFS 管理。没有执行
git lfs pull时,仓库中对应文件只是指针,推理应用无法正常加载模型。
建议先用图片分类任务验证完整流程:
# 小数据、小模型、单轮训练
ENV=dev uv run python -m tasks.image_classification.runner train
# 使用训练检查点运行样例
ENV=dev uv run python -m tasks.image_classification.runner test checkpoint=train
# 导出完整 Keras 模型
ENV=dev uv run python -m tasks.image_classification.runner export
# 使用导出模型运行样例
ENV=dev uv run python -m tasks.image_classification.runner testENV=dev 使用适合快速验证的开发配置;ENV=prod 使用正式数据路径、模型规模和训练轮数。不设置 ENV 时默认使用生产配置。
完整训练数据不会随仓库分发。数据目录格式、任务接入方法和产物路径见使用教程。
项目使用 uv 管理 Python 和依赖,macOS ARM 与 Linux 共用同一份配置:
pyproject.toml:人工维护的项目依赖和开发依赖。uv.lock:macOS ARM 与 Linux 共用的精确锁文件。requirements.txt:从锁文件导出,仅供 Hugging Face Gradio Space 安装。
安装 uv 后同步环境:
uv sync --group devmacOS ARM 如需使用 Metal GPU 加速,可以额外安装可选依赖:
uv sync --group dev --extra metal更新依赖版本时先更新锁文件,再重新导出 Hugging Face 依赖:
uv lock --upgrade
uv export --locked --no-dev --no-emit-project --no-hashes --no-annotate --output-file requirements.txtHugging Face 的原生 Gradio Space 仍读取 requirements.txt,不直接执行 uv sync。该文件是生成产物,不应手工修改。
同步开发依赖后执行:
env -u HTTP_PROXY -u HTTPS_PROXY -u ALL_PROXY -u http_proxy -u https_proxy -u all_proxy uv run pytest test/ -vGitHub Actions 会在每次推送到 main 以及 Pull Request 时运行同一套测试。
src/deep_learning/data/ 数据源、清洗与分词
src/deep_learning/models/ 模型和 ModelBuilder
src/deep_learning/pipeline/ 训练、导出与推理编排
src/deep_learning/ui/ 可复用的 Gradio 展示组件
tasks/ 各任务的配置、运行和展示入口
test/ 单元测试与流水线测试
data/dev/ 可提交的最小开发样例
saved/ Git LFS 管理的导出模型和词表
进一步阅读:
项目已完成预定的教学目标,当前进入维护状态。后续只处理明确缺陷和必要的依赖兼容性问题,不再扩展任务数量或演进为生产级训练框架。