HRNet-Semantic-Segmentation
HRNet-Semantic-Segmentation 是一个专注于语义分割任务的开源深度学习项目,旨在让计算机能够精准地识别图像中每个像素所属的类别(如道路、行人、车辆等)。它主要解决了传统方法在下采样过程中丢失空间细节、导致小物体或边界识别不准的难题。
该项目的核心亮点在于采用了高分辨率网络(HRNet),通过并行保持多分辨率特征流,避免了信息丢失;同时结合了对象上下文表示(OCR)技术,现已被重新阐释为“分割 Transformer"架构,能有效捕捉物体间的全局依赖关系。凭借这些创新,它在 Cityscapes、ADE20K 等多个权威数据集上曾屡获榜首,确立了当时的最先进性能(SOTA)。
HRNet-Semantic-Segmentation 非常适合计算机视觉领域的研究人员、算法工程师以及需要高精度分割方案的开发者使用。无论是进行学术探索、模型复现,还是将其应用于自动驾驶、医疗影像分析等实际场景,它都提供了基于 PyTorch 的官方实现和预训练权重,帮助用户快速构建高性能的视觉识别系统。
使用场景
某自动驾驶团队正在开发城市道路感知系统,急需从车载摄像头画面中精准识别车道线、行人及交通标志等细节。
没有 HRNet-Semantic-Segmentation 时
- 小目标识别率低:传统下采样网络丢失了高分辨率特征,导致远处的行人或细窄车道线经常漏检。
- 边缘分割模糊:物体边界定位不准,车辆与路面的交界处呈现锯齿状,影响路径规划精度。
- 复杂场景误判:在光照变化大或遮挡严重的路口,模型难以区分相似纹理的背景与前景物体。
- 调优成本高昂:为了提升精度不得不堆叠更深的网络,导致推理延迟增加,难以在嵌入式设备上实时运行。
使用 HRNet-Semantic-Segmentation 后
- 保持高分辨率特征:借助 HRNet 并行多分辨率结构,完整保留了空间细节,显著提升了细小物体(如路灯、标线)的检出率。
- 边界刻画锐利:结合 OCR(对象上下文表示)模块,模型能更好地理解物体整体语境,使分割边缘平滑且贴合真实轮廓。
- 语境理解增强:利用全局上下文信息,有效解决了复杂路况下的语义混淆问题,大幅降低误报率。
- 精度效率平衡:在 Cityscapes 等数据集上达到 SOTA 精度的同时,提供了轻量级模型选项,满足了车端实时推理需求。
HRNet-Semantic-Segmentation 通过坚持高分辨率表征学习与上下文聚合,彻底解决了精细场景理解中“看不清”与“认不准”的核心难题。
运行环境要求
- 未说明
需要 NVIDIA GPU(支持 Sync-BN),具体显存大小和 CUDA 版本未说明
未说明

快速开始
高分辨率网络与分割Transformer用于语义分割
分支
新闻
[2021/05/04] 我们将OCR方法重新表述为分割Transformerpdf。我们很快会提供更新后的实现。
[2021/02/16] 基于PaddleClas的ImageNet预训练权重,我们在Cityscapes验证集上达到83.22%,在PASCAL-Context验证集上达到59.62%(新的SOTA),在COCO-Stuff验证集上达到45.20%(新的SOTA),在LIP验证集上达到58.21%,在ADE20K验证集上达到47.98%。更多详情请查看openseg.pytorch。
[2020/08/16] MMSegmentation已支持我们的HRNet + OCR。
[2020/07/20] AInnovation的研究人员通过使用半监督学习方案训练我们的HRNet + OCR,在ADE20K排行榜上取得了第一名。更多细节请参阅他们的技术报告。
[2020/07/09] 我们的论文已被ECCV 2020接受:用于语义分割的对象上下文表示。值得注意的是,Nvidia的研究人员通过将我们的HRNet + OCR与一种新的层次化多尺度注意力机制结合,在Cityscapes排行榜上创造了新的最先进性能:85.4%。
[2020/03/13] 我们的论文已被TPAMI接受:用于视觉识别的深度高分辨率表征学习。
HRNet + OCR + SegFix:在Cityscapes排行榜中排名第一(84.5)。OCR:对象上下文表示pdf。HRNet + OCR在此处被复现这里。
感谢Google和UIUC的研究人员。一种改进的HRNet结合语义和实例多尺度上下文,在Mapillary Vista挑战赛上取得了最先进的一致性分割结果。详见论文。
用于Cityscapes分割的小型HRNet模型。优于MobileNetV2Plus……
在Cityscapes排行榜中排名第一(83.7)。HRNet结合了对象上下文的扩展。
支持PyTorch v1.1和官方Sync-BN。我们已在新代码库上复现了Cityscapes的结果。请查看pytorch-v1.1分支。
简介
这是用于语义分割的高分辨率表征的官方代码。 我们通过下图所示的一个非常简单的分割头来增强HRNet。我们将四个不同分辨率的输出特征进行聚合,然后使用1x1卷积将其融合。最终的输出特征会被送入分类器。我们在三个数据集——Cityscapes、PASCAL-Context和LIP——上评估了我们的方法。
此外,我们将HRNet与对象上下文表示进一步结合,在这三个数据集上取得了更高的性能。HRNet+OCR的代码包含在这个分支中。我们在图中展示了OCR的整体框架以及等效的Transformer流程:
分割模型
这些模型使用在ImageNet上预训练的权重进行初始化。“Paddle”表示结果基于PaddleCls预训练的HRNet模型。 您可以从https://github.com/HRNet/HRNet-Image-Classification下载预训练模型。*略有不同的是,我们在HRNet中使用align_corners = True进行上采样*。
- 在Cityscapes数据集上的表现。模型分别以512x1024和1024x2048的输入尺寸进行训练和测试。 如果采用多尺度测试,我们会使用以下比例:0.5、0.75、1.0、1.25、1.5、1.75。
| 模型 | 训练集 | 测试集 | OHEM | 多尺度 | 翻转 | mIoU | 链接 |
|---|---|---|---|---|---|---|---|
| HRNetV2-W48 | 训练 | 验证 | 否 | 否 | 否 | 80.9 | Github/百度网盘(提取码:pmix) |
| HRNetV2-W48 + OCR | 训练 | 验证 | 否 | 否 | 否 | 81.6 | Github/百度网盘(提取码:fa6i) |
| HRNetV2-W48 + OCR | 训练+验证 | 测试 | 否 | 是 | 是 | 82.3 | Github/百度网盘(提取码:ycrk) |
| HRNetV2-W48 (Paddle) | 训练 | 验证 | 否 | 否 | 否 | 81.6 | --- |
| HRNetV2-W48 + OCR (Paddle) | 训练 | 验证 | 否 | 否 | 否 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 训练+验证 | 测试 | 否 | 是 | 是 | --- | --- |
- 在LIP数据集上的表现。模型以473x473的输入尺寸进行训练和测试。
| 模型 | OHEM | 多尺度 | 翻转 | mIoU | 链接 |
|---|---|---|---|---|---|
| HRNetV2-W48 | 否 | 否 | 是 | 55.83 | Github/百度网盘(提取码:fahi) |
| HRNetV2-W48 + OCR | 否 | 否 | 是 | 56.48 | Github/百度网盘(提取码:xex2) |
| HRNetV2-W48 (Paddle) | 否 | 否 | 是 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 否 | 否 | 是 | --- | --- |
注 目前我们只能在PyTorch 0.4.1版本上复现LIP数据集上的HRNet+OCR结果。
- 在 PASCAL-Context 数据集上的性能。模型以 520x520 的输入尺寸进行训练和测试。
如果使用多尺度测试,我们采用的尺度为:0.5、0.75、1.0、1.25、1.5、1.75、2.0(与 EncNet、DANet 等相同)。
| 模型 | 类别数 | OHEM | 多尺度 | 镜像翻转 | mIoU | 链接 |
|---|---|---|---|---|---|---|
| HRNetV2-W48 | 59 类 | 否 | 是 | 是 | 54.1 | Github/百度网盘(提取码:wz6v) |
| HRNetV2-W48 + OCR | 59 类 | 否 | 是 | 是 | 56.2 | Github/百度网盘(提取码:yyxh) |
| HRNetV2-W48 | 60 类 | 否 | 是 | 是 | 48.3 | OneDrive/百度网盘(提取码:9uf8) |
| HRNetV2-W48 + OCR | 60 类 | 否 | 是 | 是 | 50.1 | Github/百度网盘(提取码:gtkb) |
| HRNetV2-W48 (Paddle) | 59 类 | 否 | 是 | 是 | --- | --- |
| HRNetV2-W48 (Paddle) | 60 类 | 否 | 是 | 是 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 59 类 | 否 | 是 | 是 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 60 类 | 否 | 是 | 是 | --- | --- |
- 在 COCO-Stuff 数据集上的性能。模型以 520x520 的输入尺寸进行训练和测试。
如果使用多尺度测试,我们采用的尺度为:0.5、0.75、1.0、1.25、1.5、1.75、2.0(与 EncNet、DANet 等相同)。
| 模型 | OHEM | 多尺度 | 镜像翻转 | mIoU | 链接 |
|---|---|---|---|---|---|
| HRNetV2-W48 | 是 | 否 | 否 | 36.2 | Github/百度网盘(提取码:92gw) |
| HRNetV2-W48 + OCR | 是 | 否 | 否 | 39.7 | Github/百度网盘(提取码:sjc4) |
| HRNetV2-W48 | 是 | 是 | 是 | 37.9 | Github/百度网盘(提取码:92gw) |
| HRNetV2-W48 + OCR | 是 | 是 | 是 | 40.6 | Github/百度网盘(提取码:sjc4) |
| HRNetV2-W48 (Paddle) | 是 | 否 | 否 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 是 | 否 | 否 | --- | --- |
| HRNetV2-W48 (Paddle) | 是 | 是 | 是 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 是 | 是 | 是 | --- | --- |
- 在 ADE20K 数据集上的性能。模型以 520x520 的输入尺寸进行训练和测试。
如果使用多尺度测试,我们采用的尺度为:0.5、0.75、1.0、1.25、1.5、1.75、2.0(与 EncNet、DANet 等相同)。
| 模型 | OHEM | 多尺度 | 镜像翻转 | mIoU | 链接 |
|---|---|---|---|---|---|
| HRNetV2-W48 | 是 | 否 | 否 | 43.1 | Github/百度网盘(提取码:f6xf) |
| HRNetV2-W48 + OCR | 是 | 否 | 否 | 44.5 | Github/百度网盘(提取码:peg4) |
| HRNetV2-W48 | 是 | 是 | 是 | 44.2 | Github/百度网盘(提取码:f6xf) |
| HRNetV2-W48 + OCR | 是 | 是 | 是 | 45.5 | Github/百度网盘(提取码:peg4) |
| HRNetV2-W48 (Paddle) | 是 | 否 | 否 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 是 | 否 | 否 | --- | --- |
| HRNetV2-W48 (Paddle) | 是 | 是 | 是 | --- | --- |
| HRNetV2-W48 + OCR (Paddle) | 是 | 是 | 是 | --- | --- |
快速入门
安装
- 对于 LIP 数据集,按照 官方说明 安装 PyTorch=0.4.1。对于 Cityscapes 和 PASCAL-Context,我们使用 PyTorch=1.1.0。
git clone https://github.com/HRNet/HRNet-Semantic-Segmentation $SEG_ROOT- 安装依赖:pip install -r requirements.txt
如果你想在 PASCAL-Context 数据集上训练和评估我们的模型,你需要安装 details:
pip install git+https://github.com/zhanghang1989/detail-api.git#subdirectory=PythonAPI
数据准备
你需要下载 Cityscapes、LIP 和 PASCAL-Context 数据集。
你的目录结构应如下所示:
$SEG_ROOT/data
├── cityscapes
│ ├── gtFine
│ │ ├── test
│ │ ├── train
│ │ └atóval
│ └── leftImg8bit
│ ├── test
│ ├── train
│ └arával
├── lip
│ ├── TrainVal_images
│ │ ├── train_images
│ │ └átval_images
│ └atóTrainVal_parsing_annotations
│ ├── train_segmentations
│ ├── train_segmentations_reversed
│ └átval_segmentations
àch pascal_ctx
│ ├── common
│ ├── PythonAPI
│ ├── res
│ └atóVOCdevkit
│ └atóVOC2010
àch cocostuff
│ ├── train
│ │ ├── image
│ │ └átlabel
│ └atóval
│ ├── image
│ └átlabel
àch ade20k
│ ├── train
│ │ ├── image
│ │ └átlabel
│ └atóval
│ ├── image
│ └átlabel
àch list
│ ├── cityscapes
│ │ ├── test.lst
│ │ ├── trainval.lst
│ │ └átval.lst
│ ├── lip
│ │ ├── testvalList.txt
│ │ ├── trainList.txt
│ │ └átvalList.txt
训练与测试
PyTorch 版本差异
请注意,该代码库同时支持 PyTorch 0.4.1 和 1.1.0,它们的训练命令有所不同。在下文中,我们用 $PY_CMD 来表示不同的启动命令。
# 对于 PyTorch 0.4.1
PY_CMD="python"
# 适用于 PyTorch 1.1.0
PY_CMD="python -m torch.distributed.launch --nproc_per_node=4"
例如,在 Cityscapes 数据集上进行训练时,我们使用 PyTorch 1.1.0。因此,命令
$PY_CMD tools/train.py --cfg experiments/cityscapes/seg_hrnet_ocr_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml
表示
python -m torch.distributed.launch --nproc_per_node=4 tools/train.py --cfg experiments/cityscapes/seg_hrnet_ocr_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml
训练
只需为 tools/train.py 指定配置文件即可。
例如,在 4 张 GPU 上以 12 的批量大小在 Cityscapes 数据集上训练 HRNet-W48:
$PY_CMD tools/train.py --cfg experiments/cityscapes/seg_hrnet_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml
再比如,在 4 张 GPU 上以 12 的批量大小在 Cityscapes 数据集上训练 HRNet-W48 + OCR:
$PY_CMD tools/train.py --cfg experiments/cityscapes/seg_hrnet_ocr_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml
需要注意的是,我们仅在 LIP 数据集上使用 PyTorch 0.4.1 复现了 HRNet+OCR。因此,如果您希望在 LIP 数据集上进行训练,建议使用 PyTorch 0.4.1。
测试
例如,对 HRNet+OCR 在 Cityscapes 验证集上进行多尺度和翻转测试:
python tools/test.py --cfg experiments/cityscapes/seg_hrnet_ocr_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml \
TEST.MODEL_FILE hrnet_ocr_cs_8162_torch11.pth \
TEST.SCALE_LIST 0.5,0.75,1.0,1.25,1.5,1.75 \
TEST.FLIP_TEST True
对 HRNet+OCR 在 Cityscapes 测试集上进行多尺度和翻转测试:
python tools/test.py --cfg experiments/cityscapes/seg_hrnet_ocr_w48_train_512x1024_sgd_lr1e-2_wd5e-4_bs_12_epoch484.yaml \
DATASET.TEST_SET list/cityscapes/test.lst \
TEST.MODEL_FILE hrnet_ocr_trainval_cs_8227_torch11.pth \
TEST.SCALE_LIST 0.5,0.75,1.0,1.25,1.5,1.75 \
TEST.FLIP_TEST True
对 HRNet+OCR 在 PASCAL-Context 验证集上进行多尺度和翻转测试:
python tools/test.py --cfg experiments/pascal_ctx/seg_hrnet_ocr_w48_cls59_520x520_sgd_lr1e-3_wd1e-4_bs_16_epoch200.yaml \
DATASET.TEST_SET testval \
TEST.MODEL_FILE hrnet_ocr_pascal_ctx_5618_torch11.pth \
TEST.SCALE_LIST 0.5,0.75,1.0,1.25,1.5,1.75,2.0 \
TEST.FLIP_TEST True
对 HRNet+OCR 在 LIP 验证集上进行翻转测试:
python tools/test.py --cfg experiments/lip/seg_hrnet_w48_473x473_sgd_lr7e-3_wd5e-4_bs_40_epoch150.yaml \
DATASET.TEST_SET list/lip/testvalList.txt \
TEST.MODEL_FILE hrnet_ocr_lip_5648_torch04.pth \
TEST.FLIP_TEST True \
TEST.NUM_SAMPLES 0
对 HRNet+OCR 在 COCO-Stuff 验证集上进行多尺度和翻转测试:
python tools/test.py --cfg experiments/cocostuff/seg_hrnet_ocr_w48_520x520_ohem_sgd_lr1e-3_wd1e-4_bs_16_epoch110.yaml \
DATASET.TEST_SET list/cocostuff/testval.lst \
TEST.MODEL_FILE hrnet_ocr_cocostuff_3965_torch04.pth \
TEST.SCALE_LIST 0.5,0.75,1.0,1.25,1.5,1.75,2.0 \
TEST.MULTI_SCALE True TEST.FLIP_TEST True
对 HRNet+OCR 在 ADE20K 验证集上进行多尺度和翻转测试:
python tools/test.py --cfg experiments/ade20k/seg_hrnet_ocr_w48_520x520_ohem_sgd_lr2e-2_wd1e-4_bs_16_epoch120.yaml \
DATASET.TEST_SET list/ade20k/testval.lst \
TEST.MODEL_FILE hrnet_ocr_ade20k_4451_torch04.pth \
TEST.SCALE_LIST 0.5,0.75,1.0,1.25,1.5,1.75,2.0 \
TEST.MULTI_SCALE True TEST.FLIP_TEST True
HRNet 的其他应用
引用
如果您在研究中发现本工作或代码有所帮助,请引用以下文献:
@inproceedings{SunXLW19,
title={Deep High-Resolution Representation Learning for Human Pose Estimation},
author={Ke Sun and Bin Xiao and Dong Liu and Jingdong Wang},
booktitle={CVPR},
year={2019}
}
@article{WangSCJDZLMTWLX19,
title={Deep High-Resolution Representation Learning for Visual Recognition},
author={Jingdong Wang and Ke Sun and Tianheng Cheng and
Borui Jiang and Chaorui Deng and Yang Zhao and Dong Liu and Yadong Mu and
Mingkui Tan and Xinggang Wang and Wenyu Liu and Bin Xiao},
journal={TPAMI},
year={2019}
}
@article{YuanCW19,
title={Object-Contextual Representations for Semantic Segmentation},
author={Yuhui Yuan and Xilin Chen and Jingdong Wang},
booktitle={ECCV},
year={2020}
}
参考文献
[1] Deep High-Resolution Representation Learning for Visual Recognition. Jingdong Wang, Ke Sun, Tianheng Cheng, Borui Jiang, Chaorui Deng, Yang Zhao, Dong Liu, Yadong Mu, Mingkui Tan, Xinggang Wang, Wenyu Liu, Bin Xiao. 已被 TPAMI 接受。 下载
[2] Object-Contextual Representations for Semantic Segmentation. Yuhui Yuan, Xilin Chen, Jingdong Wang。 下载
致谢
我们在 PyTorch 0.4.1 的实验中采用了由 InplaceABN 实现的同步 BN,并在 PyTorch 1.10 的实验中使用了 PyTorch 官方提供的同步 BN。
此外,我们还采用了由 PASCAL API 实现的 PASCAL-Context 数据集预处理方法。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备