Skip to content
This repository was archived by the owner on Sep 9, 2026. It is now read-only.

Repository files navigation

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

通用深度学习(General Deep Learning)

一个用同一套 Keras Pipeline 跑通文本生成、图片分类、语义分割和目标检测的教学型项目。每个任务都覆盖数据处理、模型构建、训练、检查点恢复、模型导出、样例测试和 Gradio 展示。

Tests Hugging Face Space License: MIT

包含的任务

任务 模型 展示路径
中文维基文本续写 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 test

ENV=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 dev

macOS 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.txt

Hugging 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/ -v

GitHub 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 管理的导出模型和词表

进一步阅读:

项目状态

项目已完成预定的教学目标,当前进入维护状态。后续只处理明确缺陷和必要的依赖兼容性问题,不再扩展任务数量或演进为生产级训练框架。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

12 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages