[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ethanhe42--channel-pruning":3,"tool-ethanhe42--channel-pruning":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,2,"2026-04-18T11:18:24",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":79,"owner_url":81,"languages":82,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":95,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":153},9701,"ethanhe42\u002Fchannel-pruning","channel-pruning","Channel Pruning for Accelerating Very Deep Neural Networks (ICCV'17)","channel-pruning 是一款专为加速超深神经网络设计的开源工具，核心功能是通过“通道剪枝”技术大幅压缩模型体积并提升推理速度。它主要解决了深度卷积神经网络（如 VGG、ResNet）在部署时计算量大、显存占用高导致运行缓慢的难题，让庞大的模型也能在资源受限的设备上高效运行。\n\n该工具非常适合人工智能研究人员、算法工程师以及需要在移动端或嵌入式设备部署模型的开发者使用。其独特的技术亮点在于提出了一种迭代式的剪枝策略：先利用 LASSO 回归自动识别并剔除冗余的特征通道，再通过微调恢复模型精度。这种方法不仅支持分类任务，还成功应用于 Faster R-CNN 等目标检测模型，实现了最高 5 倍的加速比，同时保持了极具竞争力的准确率。作为 ICCV 2017 的经典成果，channel-pruning 提供了完整的代码与预训练模型，是探索模型压缩与加速领域的实用利器。","# Channel Pruning for Accelerating Very Deep Neural Networks\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fethanhe42_channel-pruning_readme_733c254d8b58.png)\n\n\n[GitHub - yihui-he\u002Fchannel-pruning: Channel Pruning for Accelerating Very Deep Neural Networks (ICCV'17)](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning)\n\n[Channel Pruning for Accelerating Very Deep Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06168)\n\n**ICCV 2017**, by [Yihui He](http:\u002F\u002Fyihui-he.github.io\u002F), [Xiangyu Zhang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=yuB-cfoAAAAJ&hl=en&oi=ao) and [Jian Sun](http:\u002F\u002Fjiansun.org\u002F)\n\nPlease have a look our new works on compressing deep models: \n\n- [AMC: AutoML for Model Compression and Acceleration on Mobile Devices](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_ECCV_2018\u002Fhtml\u002FYihui_He_AMC_Automated_Model_ECCV_2018_paper.html) **ECCV’18**, which combines channel pruning and reinforcement learning to further accelerate CNN. [code](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Famc-release) and [models](https:\u002F\u002Fgithub.com\u002Fmit-han-lab\u002Famc-compressed-models) are available!\n- [AddressNet: Shift-Based Primitives for Efficient Convolutional Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.08458) **WACV’19**. We propose a family of efficient networks based on Shift operation.\n- [MoBiNet: A Mobile Binary Network for Image Classification](https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.12629) **WACV’20** Binarized MobileNets.\n\nIn this repository, we released code for the following models:\n\n| model | Speed-up | Accuracy |\n| --- | --- | --- |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Fchannel_pruning_5x | 5x | 88.1 (Top-5), 67.8 (Top-1) |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FVGG-16_3C4x | 4x | 89.9 (Top-5), 70.6 (Top-1) |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FResNet-50-2X | 2x | 90.8 (Top-5), 72.3 (Top-1) |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X | 2x | 36.7 (AP@.50:.05:.95) |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X | 4x | 35.1 (AP@.50:.05:.95) |\n\n3C method combined spatial decomposition ([Speeding up Convolutional Neural Networks with Low Rank Expansions](https:\u002F\u002Farxiv.org\u002Fabs\u002F1405.3866)) and channel decomposition ([Accelerating Very Deep Convolutional Networks for Classification and Detection](https:\u002F\u002Farxiv.org\u002Fabs\u002F1505.06798)) (mentioned in 4.1.2)\n\n### Citation\n\nIf you find the code useful in your research, please consider citing:\n\n```\n@InProceedings{He_2017_ICCV,\nauthor = {He, Yihui and Zhang, Xiangyu and Sun, Jian},\ntitle = {Channel Pruning for Accelerating Very Deep Neural Networks},\nbooktitle = {The IEEE International Conference on Computer Vision (ICCV)},\nmonth = {Oct},\nyear = {2017}\n}\n```\n\n### requirements\n\n1. Python3 packages you might not have: `scipy`, `sklearn`, `easydict`, use `sudo pip3 install` to install.\n2. For finetuning with 128 batch size, 4 GPUs (~11G of memory)\n\n### Installation (sufficient for the demo)\n\n1. Clone the repository\n    \n    ```bash\n    # Make sure to clone with --recursive\n     git clone --recursive https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning.git\n    ```\n    \n2. Build [my Caffe](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fcaffe-pro) fork (which support bicubic interpolation and resizing image shorter side to 256 then crop to 224x224) \n    \n    ```bash\n    cd caffe\n    \n     # If you're experienced with Caffe and have all of the requirements installed, then simply do:\n     make all -j8 && make pycaffe\n     # Or follow the Caffe installation instructions here:\n     # http:\u002F\u002Fcaffe.berkeleyvision.org\u002Finstallation.html\n    \n     # you might need to add pycaffe to PYTHONPATH, if you've already had a caffe before\n    ```\n    \n3. Download ImageNet classification dataset http:\u002F\u002Fwww.image-net.org\u002Fdownload-images\n4. Specify imagenet `source` path in `temp\u002Fvgg.prototxt` (line 12 and 36)\n\n### Channel Pruning\n\n*For fast testing, you can directly download pruned model. See [next section](about:blank#pruned-models-for-download)* 1. Download the original VGG-16 model http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fsoftware\u002Fvery_deep\u002Fcaffe\u002FVGG_ILSVRC_16_layers.caffemodel\nmove it to `temp\u002Fvgg.caffemodel` (or create a softlink instead)\n\n1. Start Channel Pruning \n    \n    ```bash\n    python3 train.py -action c3 -caffe [GPU0]\n     # or log it with .\u002Frun.sh python3 train.py -action c3 -caffe [GPU0]\n     # replace [GPU0] with actual GPU device like 0,1 or 2\n    ```\n    \n2. Combine some factorized layers for further compression, and calculate the acceleration ratio. Replace the ImageData layer of `temp\u002Fcb_3c_3C4x_mem_bn_vgg.prototxt` with `[temp\u002Fvgg.prototxt`’s](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fblob\u002Fmaster\u002Ftemp\u002Fvgg.prototxt#L1-L49) `Shell .\u002Fcombine.sh | xargs .\u002Fcalflop.sh`\n3. Finetuning \n    \n    ```bash\n    caffe train -solver temp\u002Fsolver.prototxt -weights temp\u002Fcb_3c_vgg.caffemodel -gpu [GPU0,GPU1,GPU2,GPU3]\n     # replace [GPU0,GPU1,GPU2,GPU3] with actual GPU device like 0,1,2,3\n    ```\n    \n4. Testing\n    \n    Though testing is done while finetuning, you can test anytime with: \n    \n    ```bash\n    caffe test -model path\u002Fto\u002Fprototxt -weights path\u002Fto\u002Fcaffemodel -iterations 5000 -gpu [GPU0]\n     # replace [GPU0] with actual GPU device like 0,1 or 2\n    ```\n    \n    Pruned models (for download) \n    \n    For fast testing, you can directly download pruned model from [release](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases): [VGG-16 3C 4X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FVGG-16_3C4x), [VGG-16 5X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Fchannel_pruning_5x), [ResNet-50 2X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FResNet-50-2X). Or follow Baidu Yun [Download link](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1c2evwTa)\n    \n\nTest with:\n\n```\ncaffe test -model channel_pruning_VGG-16_3C4x.prototxt -weights channel_pruning_VGG-16_3C4x.caffemodel -iterations 5000 -gpu [GPU0]\n# replace [GPU0] with actual GPU device like 0,1 or 2\n```\n\n### Pruning faster RCNN\n\nFor fast testing, you can directly download pruned model from [release](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X)\nOr you can: 1. clone my py-faster-rcnn repo: https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn 2. use the [pruned models](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X) from this repo to train faster RCNN 2X, 4X, solver prototxts are in https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn\u002Ftree\u002Fmaster\u002Fmodels\u002Fpascal_voc\n\n### FAQ\n\nYou can find answers of some commonly asked questions in our [Github wiki](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fwiki), or just create a [new issue](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fissues\u002Fnew)\n","# 通道剪枝用于加速超深神经网络\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fethanhe42_channel-pruning_readme_733c254d8b58.png)\n\n\n[GitHub - yihui-he\u002Fchannel-pruning: 通道剪枝用于加速超深神经网络 (ICCV'17)](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning)\n\n[通道剪枝用于加速超深神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1707.06168)\n\n**ICCV 2017**，由 [Yihui He](http:\u002F\u002Fyihui-he.github.io\u002F)、[Xiangyu Zhang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=yuB-cfoAAAAJ&hl=en&oi=ao) 和 [Jian Sun](http:\u002F\u002Fjiansun.org\u002F) 共同完成。\n\n请查看我们在深度模型压缩方面的最新工作：\n\n- [AMC：面向移动设备的模型压缩与加速自动化机器学习](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_ECCV_2018\u002Fhtml\u002FYihui_He_AMC_Automated_Model_ECCV_2018_paper.html) **ECCV’18**，该方法结合了通道剪枝和强化学习，进一步加速卷积神经网络。代码和模型均已公开！\n- [AddressNet：基于移位操作的高效卷积神经网络原语](https:\u002F\u002Farxiv.org\u002Fabs\u002F1809.08458) **WACV’19**。我们提出了一类基于移位操作的高效网络。\n- [MoBiNet：用于图像分类的移动端二值化网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F1907.12629) **WACV’20**，一种二值化的MobileNet。\n\n在本仓库中，我们发布了以下模型的代码：\n\n| 模型 | 加速倍数 | 准确率 |\n| --- | --- | --- |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Fchannel_pruning_5x | 5倍 | Top-5 88.1%，Top-1 67.8% |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FVGG-16_3C4x | 4倍 | Top-5 89.9%，Top-1 70.6% |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FResNet-50-2X | 2倍 | Top-5 90.8%，Top-1 72.3% |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X | 2倍 | AP@.50:.05:.95 36.7 |\n| https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X | 4倍 | AP@.50:.05:.95 35.1 |\n\n3C 方法结合了空间分解（参见《利用低秩展开加速卷积神经网络》）和通道分解（参见《加速用于分类和检测的超深卷积神经网络》）（详见 4.1.2 节）。\n\n### 引用\n\n如果您在研究中使用了这些代码，请考虑引用以下文献：\n\n```\n@InProceedings{He_2017_ICCV,\nauthor = {He, Yihui and Zhang, Xiangyu and Sun, Jian},\ntitle = {Channel Pruning for Accelerating Very Deep Neural Networks},\nbooktitle = {The IEEE International Conference on Computer Vision (ICCV)},\nmonth = {Oct},\nyear = {2017}\n}\n```\n\n### 环境要求\n\n1. 您可能尚未安装的 Python3 包：`scipy`、`sklearn`、`easydict`，可使用 `sudo pip3 install` 进行安装。\n2. 使用 128 的批量大小进行微调时，需要 4 块 GPU（每块约 11GB 显存）。\n\n### 安装说明（适用于演示）\n\n1. 克隆仓库\n    \n    ```bash\n    # 请务必使用 --recursive 选项克隆\n     git clone --recursive https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning.git\n    ```\n    \n2. 构建我的 Caffe 分支（支持双三次插值，并将图像短边调整为 256 后裁剪为 224×224）\n    \n    ```bash\n    cd caffe\n    \n     # 如果您熟悉 Caffe 并已安装所有依赖项，则只需执行：\n     make all -j8 && make pycaffe\n     # 或者按照此处的 Caffe 安装说明进行操作：\n     # http:\u002F\u002Fcaffe.berkeleyvision.org\u002Finstallation.html\n    \n     # 如果您之前已经安装过 Caffe，可能需要将 pycaffe 添加到 PYTHONPATH 中\n    ```\n    \n3. 下载 ImageNet 分类数据集 http:\u002F\u002Fwww.image-net.org\u002Fdownload-images\n4. 在 `temp\u002Fvgg.prototxt` 文件中指定 ImageNet 数据源路径（第 12 行和第 36 行）。\n\n### 通道剪枝\n\n*为了快速测试，您可以直接下载剪枝后的模型。请参阅【下一节】关于可下载的剪枝模型* 1. 下载原始的 VGG-16 模型 http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fsoftware\u002Fvery_deep\u002Fcaffe\u002FVGG_ILSVRC_16_layers.caffemodel\n将其移动至 `temp\u002Fvgg.caffemodel`（或创建一个软链接代替）。\n\n1. 开始通道剪枝\n    \n    ```bash\n    python3 train.py -action c3 -caffe [GPU0]\n     # 或通过 .\u002Frun.sh 记录日志：python3 train.py -action c3 -caffe [GPU0]\n     # 将 [GPU0] 替换为实际的 GPU 设备编号，如 0、1 或 2\n    ```\n    \n2. 将部分因子化层合并以进一步压缩模型，并计算加速比。将 `temp\u002Fcb_3c_3C4x_mem_bn_vgg.prototxt` 中的 ImageData 层替换为 `[temp\u002Fvgg.prototxt` 中的](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fblob\u002Fmaster\u002Ftemp\u002Fvgg.prototxt#L1-L49) `Shell .\u002Fcombine.sh | xargs .\u002Fcalflop.sh`\n3. 微调\n    \n    ```bash\n    caffe train -solver temp\u002Fsolver.prototxt -weights temp\u002Fcb_3c_vgg.caffemodel -gpu [GPU0,GPU1,GPU2,GPU3]\n     # 将 [GPU0,GPU1,GPU2,GPU3] 替换为实际的 GPU 设备编号，如 0、1、2、3\n    ```\n    \n4. 测试\n    \n    虽然测试通常在微调过程中进行，但您也可以随时使用以下命令进行测试：\n    \n    ```bash\n    caffe test -model path\u002Fto\u002Fprototxt -weights path\u002Fto\u002Fcaffemodel -iterations 5000 -gpu [GPU0]\n     # 将 [GPU0] 替换为实际的 GPU 设备编号，如 0、1 或 2\n    ```\n    \n    剪枝后的模型（可供下载）\n    \n    为了快速测试，您可以直接从 [发布页面](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases) 下载剪枝后的模型：[VGG-16 3C 4X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FVGG-16_3C4x)、[VGG-16 5X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Fchannel_pruning_5x)、[ResNet-50 2X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002FResNet-50-2X)。或者通过百度网盘提供的下载链接：[Download link](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1c2evwTa)\n    \n\n测试示例：\n\n```\ncaffe test -model channel_pruning_VGG-16_3C4x.prototxt -weights channel_pruning_VGG-16_3C4x.caffemodel -iterations 5000 -gpu [GPU0]\n# 将 [GPU0] 替换为实际的 GPU 设备编号，如 0、1 或 2\n```\n\n### Faster R-CNN 的剪枝\n\n为了快速测试，您可以直接从 [发布页面](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X) 下载剪枝后的模型。\n或者您也可以：1. 克隆我的 py-faster-rcnn 仓库：https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn；2. 使用本仓库中的 [剪枝模型](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases\u002Ftag\u002Ffaster-RCNN-2X4X) 来训练 2 倍和 4 倍加速的 Faster R-CNN，其求解器 prototxt 文件位于 https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn\u002Ftree\u002Fmaster\u002Fmodels\u002Fpascal_voc。\n\n### 常见问题解答\n\n您可以在我们的 [Github wiki](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fwiki) 中找到一些常见问题的答案，或者直接创建一个新的 [issue](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Fissues\u002Fnew)。","# Channel Pruning 快速上手指南\n\nChannel Pruning 是一种用于加速深度神经网络（如 VGG、ResNet）的通道剪枝技术，源自 ICCV 2017 论文。本指南帮助你快速搭建环境并运行剪枝流程。\n\n## 环境准备\n\n**系统要求：**\n- 操作系统：Linux (推荐 Ubuntu)\n- Python 版本：Python 3\n- GPU：建议配备 4 张 GPU（每张显存约 11GB），以支持 batch size 128 的微调训练。\n\n**前置依赖：**\n安装必要的 Python 包：\n```bash\nsudo pip3 install scipy sklearn easydict\n```\n\n**数据集：**\n- 下载 ImageNet 分类数据集：http:\u002F\u002Fwww.image-net.org\u002Fdownload-images\n- *注：国内用户可使用镜像源或自行寻找公开镜像加速下载。*\n\n## 安装步骤\n\n**1. 克隆仓库**\n务必使用 `--recursive` 参数以获取子模块：\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning.git\ncd channel-pruning\n```\n\n**2. 编译 Caffe 框架**\n本项目依赖作者修改版的 Caffe（支持双三次插值及特定图像预处理）。\n```bash\ncd caffe\n\n# 若已具备 Caffe 所有依赖，直接编译：\nmake all -j8 && make pycaffe\n\n# 若未安装 Caffe 依赖，请参考官方文档：\n# http:\u002F\u002Fcaffe.berkeleyvision.org\u002Finstallation.html\n```\n*提示：编译完成后，可能需要将 `pycaffe` 路径添加到 `PYTHONPATH` 环境变量中。*\n\n**3. 配置数据集路径**\n打开 `temp\u002Fvgg.prototxt` 文件，修改第 12 行和第 36 行，将 `source` 路径指向你本地的 ImageNet 数据目录。\n\n## 基本使用\n\n以下以 VGG-16 模型为例，演示从加载预训练模型到完成剪枝微调的流程。\n\n**1. 准备预训练模型**\n下载原始 VGG-16 模型并放置到指定位置：\n```bash\n# 下载地址：http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fsoftware\u002Fvery_deep\u002Fcaffe\u002FVGG_ILSVRC_16_layers.caffemodel\n# 将下载的文件移动或软链接到 temp\u002Fvgg.caffemodel\nmv VGG_ILSVRC_16_layers.caffemodel temp\u002Fvgg.caffemodel\n```\n\n**2. 执行通道剪枝**\n开始剪枝过程（请将 `[GPU0]` 替换为实际可用的 GPU 编号，如 0）：\n```bash\npython3 train.py -action c3 -caffe [GPU0]\n# 或者使用脚本记录日志：\n# .\u002Frun.sh python3 train.py -action c3 -caffe [GPU0]\n```\n\n**3. 层融合与加速比计算**\n合并部分分解层以进一步压缩，并计算加速比例：\n```bash\n# 替换 temp\u002Fcb_3c_3C4x_mem_bn_vgg.prototxt 中的 ImageData 层为 temp\u002Fvgg.prototxt 的配置\n# 然后执行：\n.\u002Fcombine.sh | xargs .\u002Fcalflop.sh\n```\n\n**4. 微调模型 (Finetuning)**\n使用剪枝后的权重进行微调（支持多 GPU，如 0,1,2,3）：\n```bash\ncaffe train -solver temp\u002Fsolver.prototxt -weights temp\u002Fcb_3c_vgg.caffemodel -gpu [GPU0,GPU1,GPU2,GPU3]\n```\n\n**5. 测试模型**\n微调过程中会自动测试，也可手动运行测试命令：\n```bash\ncaffe test -model path\u002Fto\u002Fprototxt -weights path\u002Fto\u002Fcaffemodel -iterations 5000 -gpu [GPU0]\n```\n\n> **快捷方式**：若仅需测试效果，可直接从 [Release 页面](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fchannel-pruning\u002Freleases) 下载已剪枝好的模型（如 VGG-16 4x, ResNet-50 2x 等），直接使用上述测试命令即可。","某自动驾驶初创团队正试图将高精度的 ResNet-50 目标检测模型部署到算力有限的车载嵌入式设备上，以满足实时路况分析需求。\n\n### 没有 channel-pruning 时\n- **推理延迟过高**：原始深层网络参数量巨大，在边缘设备上单次推理耗时超过 200ms，无法达到自动驾驶要求的 30fps 实时标准。\n- **显存资源爆满**：模型加载后占用显存远超硬件上限，导致频繁的数据交换甚至程序崩溃，无法与其他感知模块共存。\n- **能耗严重超标**：密集的卷积计算导致设备功耗激增，引发芯片过热降频，进一步拖慢处理速度并缩短车辆续航。\n- **部署妥协困难**：团队被迫在“降低输入分辨率牺牲精度”和“更换昂贵高性能硬件”之间做两难选择，项目进度受阻。\n\n### 使用 channel-pruning 后\n- **推理速度倍增**：通过剪枝冗余通道，channel-pruning 成功将 ResNet-50 模型加速 2 倍，推理延迟降至 90ms 以内，轻松满足实时性要求。\n- **资源占用大幅降低**：模型体积显著缩小，显存占用减少一半以上，使得多模型并行运行成为可能，系统稳定性显著提升。\n- **能效比优化明显**：计算量的直接减少降低了功耗与发热，设备可长时间稳定运行在高频状态，无需额外散热改造。\n- **精度几乎无损**：得益于迭代剪枝与微调策略，Top-1 准确率仅微跌（如从 76% 降至 72.3%），在可接受范围内保住了核心检测能力。\n\nchannel-pruning 的核心价值在于它能在几乎不牺牲模型精度的前提下，通过结构化剪枝让超深神经网络在资源受限的边缘设备上实现高效、实时的落地运行。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fethanhe42_channel-pruning_c524a227.png","ethanhe42","Ethan He","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fethanhe42_7e3f086b.jpg","@xai-org | prev @NVIDIA @facebookresearch CMU | 9k citations","@xai-org","Palo Alto, CA",null,"EthanHe_42","https:\u002F\u002Fgithub.com\u002Fethanhe42",[83,87],{"name":84,"color":85,"percentage":86},"Python","#3572A5",99.7,{"name":88,"color":89,"percentage":90},"Shell","#89e051",0.3,1089,308,"2026-03-23T13:22:00","MIT",5,"Linux","必需 NVIDIA GPU。微调（finetuning）阶段建议 4 张显卡，每张显存约 11GB（总计约 44GB）。推理\u002F测试可使用单卡。","未说明",{"notes":100,"python":101,"dependencies":102},"1. 该工具基于 Caffe 框架，需编译作者提供的自定义 Caffe fork（支持双三次插值和特定图像预处理），不支持主流深度学习框架如 PyTorch 或 TensorFlow。\n2. 必须使用 `git clone --recursive` 克隆仓库以获取子模块。\n3. 需要手动下载 ImageNet 数据集和预训练的 VGG-16 模型文件并配置路径。\n4. 若进行大规模微调（batch size 128），硬件门槛较高（4x 11GB GPU）；若仅测试已剪枝模型，单张 GPU 即可。","Python 3",[103,104,105,106,107],"Caffe (自定义 fork 版本)","scipy","sklearn","easydict","py-faster-rcnn (用于 Faster R-CNN 任务)",[15],[110,111,112,113,114,65,115],"image-recognition","model-compression","acceleration","object-detection","image-classification","deep-neural-networks","2026-03-27T02:49:30.150509","2026-04-20T04:05:08.107090",[119,124,129,134,139,144,149],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},43574,"运行代码时遇到 'Failed to include caffe_pb2' 或 protobuf 相关的 TypeError 错误怎么办？","这通常是由于 protobuf 版本不兼容导致的。解决方案是将 protobuf 升级到 v3.2.0 或更高版本。如果您使用的是 Python 3，请尝试执行命令：`sudo pip3 install --upgrade protobuf` 或指定版本 `pip3 install protobuf==3.2.0`。有用户反馈从 v2.5.0 升级到 v3.2.0 后问题解决。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F12",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},43575,"在通道剪枝（Channel Pruning）步骤中，为什么代码不考虑 ReLU 层？","因为在算法的第 0 步（step0）中，ReLU 层已经被分离处理了。作者确认不需要在后续的 CR 步骤中特别关心 ReLU 层，如果需要恢复 ReLU 操作，只需对输出执行 ReLU(X) 即可。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F20",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},43576,"仅进行剪枝（不使用空间分解 3C）时，运行 stepend() 报错 'shape mismatch' 或无法写入权重怎么办？","这是因为生成的 prototxt 文件除了 `num_output` 属性外与原文件相同，导致 Caffe 尝试将原模型权重复制到新尺寸的层时报错。原作者的代码通过重命名层来解决此问题。如果只进行剪枝，建议参考 Caffe 官方的 'net surgery' 示例，利用代码中生成的 `WPQ`（剪枝后的权重）直接创建新的 .caffemodel 文件，而不是依赖原始的 vgg.caffemodel 进行权重复制。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F54",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},43577,"代码中的 rankdic（秩字典）是如何计算的？ResNet-50 的秩是多少？","确定秩（rank）不在论文的研究范围内。目前的秩是手动设置的（manually set）。在通道分解部分，论文提出了一种启发式方法，但代码中发布的 ResNet-50 和 VGG16 的 rankdic 均为预设值，并非通过公式自动计算得出。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F47",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},43578,"如何获取 ResNet-50 2X 的原始 prototxt 文件？为什么剪枝后的模型比原模型慢？","目前社区用户反馈难以直接使用提供的代码对原始 ResNet-50 模型进行剪枝，且基准测试结果显示剪枝模型应更快。如果遇到剪枝后变慢或无法运行的情况，可能是配置或未正确应用作者的特定标签（如 ResNet-50-2X tag）。由于作者未提供详细的 ResNet 剪枝 README，建议检查是否使用了正确的模型分支，并留意作者后续可能发布的代码更新。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F35",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},43579,"如果想只进行剪枝而不包含空间分解（3C），需要修改多少代码？","这需要绕过涉及 VH 和 ITQ 的步骤。用户发现如果移除这些步骤，代码会因层名称未重命名而报错。一种可行的方法是跳过 `stepend()` 函数，直接利用代码内部生成的 `WPQ` 数据和修改后的 `num_output` 参数，参考 Caffe 的 net surgery 教程手动构建新的 caffemodel 文件，从而避免权重形状不匹配的问题。","https:\u002F\u002Fgithub.com\u002Fethanhe42\u002Fchannel-pruning\u002Fissues\u002F34",{"id":150,"question_zh":151,"answer_zh":152,"source_url":123},43580,"安装过程中遇到 sklearn 相关缺失导致的问题如何解决？","如果运行时报错提示缺少 sklearn 相关模块，可以尝试安装 contrib 包来解决。具体命令为：`sudo pip3 install sklearn-contrib-lightning`。",[154,159,164,169],{"id":155,"version":156,"summary_zh":157,"released_at":158},343202,"ResNet-50-2X","我们发布了剪枝后的 ResNet-50 2 倍模型：  \n`resnet-50-cp.caffemodel, resnet-50-cp.prototxt` 。  \n与 VGG-16 3C 4X 不同，该模型仅采用了通道剪枝算法。\n\n模型 | 加速倍数 | Top-5 | Top-1  \n:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:  \nResNet-50 | 2×            |  90.8 | 72.3  \n[ResNet-50](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fresnet-imagenet-caffe\u002Fblob\u002Fmaster\u002Fresnet_50\u002FResNet-50-test.prototxt) | -            |  92.2 | 75.3  \n\n欢迎大家测试并留下您的反馈。","2017-10-10T21:53:32",{"id":160,"version":161,"summary_zh":162,"released_at":163},343203,"faster-RCNN-2X4X","模型 | AP@0.50:0.05:0.95\n--- | ---\nFaster R-CNN | 36.7\n[Faster R-CNN 2X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn\u002Ftree\u002Fmaster\u002Fmodels\u002Fpascal_voc\u002FVGGx2\u002Ffaster_rcnn_end2end) | 36.7\n[Faster R-CNN 4X](https:\u002F\u002Fgithub.com\u002Fyihui-he\u002Fpy-faster-rcnn\u002Ftree\u002Fmaster\u002Fmodels\u002Fpascal_voc\u002FVGGx4\u002Ffaster_rcnn_end2end) | 35.1\n\n点击上方链接下载 prototxt 文件。`VGGx4.v2.caffemodel` 是最终模型 `vggx4_iter_70000.caffemodel` 的初始模型。","2017-10-10T21:24:32",{"id":165,"version":166,"summary_zh":167,"released_at":168},343204,"channel_pruning_5x","我们发布了经过通道剪枝的 VGG-16 5 倍模型：`channel_pruning.caffemodel` 和 `channel_pruning.prototxt`。与 VGG-16 3C 4X 不同，该模型仅采用了通道剪枝算法。\n\n模型 | 加速倍数 | Top-5 | Top-1  \n:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:  \nVGG-16 | 5x            | 88.1 | 67.8  \n\n欢迎大家测试并留下您的反馈。","2017-10-10T19:37:30",{"id":170,"version":171,"summary_zh":172,"released_at":173},343205,"VGG-16_3C4x","我们发布了剪枝后的 VGG-16 3C 4X 模型：`channel_pruning_VGG-16_3C4x.caffemodel` 和 `channel_pruning_VGG-16_3C4x.prototxt`。\n\n\n模型 | 加速倍数 | Top-5 | Top-1\n:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:\nVGG-16 | 4x            | 89.8904 | 70.574\n\n欢迎大家测试并留下您的反馈。","2017-08-23T04:33:29"]