[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-NVIDIA--partialconv":3,"tool-NVIDIA--partialconv":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":90,"difficulty_score":23,"env_os":91,"env_gpu":92,"env_ram":91,"env_deps":93,"category_tags":98,"github_topics":79,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":99,"updated_at":100,"faqs":101,"releases":142},3803,"NVIDIA\u002Fpartialconv","partialconv","A New Padding Scheme: Partial Convolution based Padding","partialconv 是一个基于 PyTorch 实现的开源深度学习组件，核心功能是提供“部分卷积”（Partial Convolution）层。它主要解决了传统卷积神经网络在处理图像边界填充或修复缺失区域时，因使用零填充（Zero Padding）而引入伪影和误差的痛点。\n\n在传统方法中，缺失或边界外的像素通常被强制设为零，这会误导模型学习；而 partialconv 通过动态掩码机制，让卷积运算仅针对有效像素进行，并自动更新掩码以追踪有效信息区域。这种机制不仅作为一种更优的填充方案提升了常规任务的精度，更是图像修复（Inpainting）领域的突破性技术，能够高质量地填补不规则形状的图像缺损。\n\n该工具特别适合 AI 研究人员、算法工程师及计算机视觉开发者使用，尤其是那些致力于图像修复、去噪或需要高精度边界处理场景的专业人士。其独特的技术亮点在于支持多通道掩码更新与混合精度训练（AMP），在保持高效计算的同时显著提升了模型在不规则空洞修复上的表现。相比传统方案，它能生成更自然、连贯的视觉结果，是构建高性能图像处理模型的理想选择。","\r\n# Partial Convolution Layer for Padding and Image Inpainting\r\n### [Padding Paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1811.11718.pdf) | [Inpainting Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1804.07723) | [Inpainting YouTube Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gg0F5JjKmhA) | [Online Inpainting Demo](https:\u002F\u002Fwww.nvidia.com\u002Fresearch\u002Finpainting\u002F)\r\n\r\nThis is the PyTorch implementation of partial convolution layer. It can serve as a new padding scheme; it can also be used for image inpainting. \u003Cbr>\u003Cbr>\r\n\r\n\r\n[Partial Convolution based Padding](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1811.11718.pdf) \u003Cbr>\r\n[Guilin Liu](https:\u002F\u002Fliuguilin1225.github.io\u002F), [Kevin J. Shih](http:\u002F\u002Fweb.engr.illinois.edu\u002F~kjshih2\u002F), [Ting-Chun Wang](https:\u002F\u002Ftcwang0509.github.io\u002F), [Fitsum A. Reda](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=quZ_qLYAAAAJ&hl=en), [Karan Sapra](http:\u002F\u002Fcecas.clemson.edu\u002F~ksapra\u002F), [Zhiding Yu](https:\u002F\u002Fchrisding.github.io\u002F), Andrew Tao, [Bryan Catanzaro](http:\u002F\u002Fcatanzaro.name\u002F) \u003Cbr>\r\nNVIDIA Corporation \u003Cbr>\r\nTechnical Report (**Technical Report**) 2018\r\n\r\n\r\n[Image Inpainting for Irregular Holes Using Partial Convolutions](https:\u002F\u002Farxiv.org\u002Fabs\u002F1804.07723) \u003Cbr>\r\n[Guilin Liu](https:\u002F\u002Fliuguilin1225.github.io\u002F), [Fitsum A. Reda](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=quZ_qLYAAAAJ&hl=en), [Kevin J. Shih](http:\u002F\u002Fweb.engr.illinois.edu\u002F~kjshih2\u002F), [Ting-Chun Wang](https:\u002F\u002Ftcwang0509.github.io\u002F), Andrew Tao, [Bryan Catanzaro](http:\u002F\u002Fctnzr.io\u002F) \u003Cbr>\r\nNVIDIA Corporation \u003Cbr>\r\nIn The European Conference on Computer Vision (**ECCV**) 2018  \u003Cbr> \u003Cbr>\r\n\r\n\r\n\r\n## Comparison with Zero Padding\r\n\u003Cp align='center'>  \r\n  \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_6bb5c1a04820.png' width='440'\u002F>\r\n\u003C\u002Fp>\r\n\r\n\r\n## Installation\r\nInstallation can be found: https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fexamples\u002Ftree\u002Fmaster\u002Fimagenet\r\n\r\n\r\n## Usage:\r\n\r\n- using partial conv for padding\r\n```\r\n#typical convolution layer with zero padding\r\nnn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\r\n\r\n#partial convolution based padding\r\nPartialConv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\r\n```\r\n\r\n- using partial conv for image inpainting, set both `multi_channel` and `return_mask` to be `True`\r\n```\r\n#partial convolution for inpainting (using multiple channels and updating mask)\r\nPartialConv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False, multi_channel=True, return_mask=True)\r\n```\r\n\r\n## Mixed Precision Training with AMP for image inpainting\r\n- Installation: to train with mixed precision support, please first install apex from: [https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex)\r\n- Required change #1 (Typical changes): typical changes needed for AMP\r\n```\r\n  from apex import amp\r\n  \r\n  #initializing model and optimizer\r\n  self.model, self.optimizer = amp.initialize(self.model, self.optimizer, opt_level=args.amp_opt_level)\r\n  \r\n  #initializing vgg loss function\u002Fextractor\r\n  self.vgg_feat_loss = amp.initialize(self.vgg_feat_loss, opt_level=args.amp_opt_level)\r\n  \r\n  #scale loss\r\n  with amp.scale_loss(total_loss, self.g_optimizer) as scaled_loss:\r\n      scaled_loss.backward()\r\n\r\n```\r\n\r\n- Required change #2 (Gram Matrix Loss): in Gram matrix loss computation, change one-step division to two-step smaller divisions\r\n  - change from [one-step division](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Floss.py#L38): `gram = features.bmm(features_t) \u002F (ch * h * w)\r\n`  \r\n  - to [two-step smaller divisions](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Floss.py#L31):\r\n```\r\n    input = torch.zeros(b, ch, ch).type(features.type())\r\n    gram = torch.baddbmm(input, features, features_t, beta=0, alpha=1.\u002F(ch * h * w), out=None)\r\n```\r\n\r\n- Required change #3 (Small Constant Number): make the small constant number a bit larger (e.g. 1e-8 to 1e-6)\r\n  - change from [1e-8](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Fpartialconv2d.py#L64): `self.mask_ratio = self.slide_winsize\u002F(self.update_mask + 1e-8)`\r\n  - to [1e-6](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Fpartialconv2d.py#L63): `self.mask_ratio = self.slide_winsize\u002F(self.update_mask + 1e-6)`\r\n  \r\n\r\n\r\n## Usage of partial conv based padding to train ImageNet\r\n- ResNet50 using zero padding (default padding)\r\n```\r\npython main.py -a resnet50 --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\r\n```\r\n\r\n- ResNet50 using partial conv based padding\r\n```\r\npython main.py -a pdresnet50 --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\r\n```\r\n\r\n- vgg16_bn using zero padding (default padding)\r\n```\r\npython main.py -a vgg16_bn --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\r\n```\r\n\r\n- vgg16_bn using partial conv based padding\r\n```\r\npython main.py -a pdvgg16_bn --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\r\n```\r\n\r\n### Pretrained checkpoints (weights) for VGG and ResNet networks with partial convolution based padding:\r\n```\r\nhttps:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Ft6flbuoipyzqid8\u002FAACJ8rtrF6V5b9348aG5PIhia?dl=0\r\n```\r\n\r\n\r\n## Comparison with Zero Padding, Reflection Padding and Replication Padding for 5 runs\r\n\u003Cp align='center'>  \r\n  \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_10144d6358fc.png' width='660'\u002F>\r\n\u003C!--   \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_d66b237aa357.png' width='660'\u002F> -->\r\n\u003C\u002Fp>\r\n\r\nThe best top-1 accuracies for each run with 1-crop testing. \\*\\_zero, \\*\\_pd, \\*\\_ref and \\*\\_rep indicate the corresponding model with zero padding, partial convolution based padding, reflection padding and replication padding respectively. \\*\\_best means the best validation score for each run of the training. Average represents the average accuracy of the 5 runs. Column diff represents the difference with corresponding network using zero padding. Column stdev represents the standard deviation of the accuracies from 5 runs. PT\\_official represents the corresponding official accuracies published on PyTorch website: https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Ftorchvision\u002Fmodels.html\r\n\r\n\r\n\r\n## Citation\r\n```\r\n@inproceedings{liu2018partialpadding,\r\n   author    = {Guilin Liu and Kevin J. Shih and Ting-Chun Wang and Fitsum A. Reda and Karan Sapra and Zhiding Yu and Andrew Tao and Bryan Catanzaro},\r\n   title     = {Partial Convolution based Padding},\r\n   booktitle = {arXiv preprint arXiv:1811.11718},   \r\n   year      = {2018},\r\n}\r\n@inproceedings{liu2018partialinpainting,\r\n   author    = {Guilin Liu and Fitsum A. Reda and Kevin J. Shih and Ting-Chun Wang and Andrew Tao and Bryan Catanzaro},\r\n   title     = {Image Inpainting for Irregular Holes Using Partial Convolutions},\r\n   booktitle = {The European Conference on Computer Vision (ECCV)},   \r\n   year      = {2018},\r\n}\r\n```\r\n\r\nContact: Guilin Liu (guilinl@nvidia.com)\r\n\r\n## Acknowledgments\r\nWe thank Jinwei Gu, Matthieu Le, Andrzej Sulecki, Marek Kolodziej and Hongfu Liu for helpful discussions.\r\n","# 用于填充和图像修复的局部卷积层\n### [填充论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1811.11718.pdf) | [修复论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1804.07723) | [修复 YouTube 视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gg0F5JjKmhA) | [在线修复演示](https:\u002F\u002Fwww.nvidia.com\u002Fresearch\u002Finpainting\u002F)\n\n这是局部卷积层的 PyTorch 实现。它可以作为一种新的填充方案，也可以用于图像修复。 \u003Cbr>\u003Cbr>\n\n\n[基于局部卷积的填充](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1811.11718.pdf) \u003Cbr>\n[Guilin Liu](https:\u002F\u002Fliuguilin1225.github.io\u002F)、[Kevin J. Shih](http:\u002F\u002Fweb.engr.illinois.edu\u002F~kjshih2\u002F)、[Ting-Chun Wang](https:\u002F\u002Ftcwang0509.github.io\u002F)、[Fitsum A. Reda](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=quZ_qLYAAAAJ&hl=en)、[Karan Sapra](http:\u002F\u002Fcecas.clemson.edu\u002F~ksapra\u002F)、[Zhiding Yu](https:\u002F\u002Fchrisding.github.io\u002F)、Andrew Tao、[Bryan Catanzaro](http:\u002F\u002Fcatanzaro.name\u002F) \u003Cbr>\nNVIDIA 公司 \u003Cbr>\n技术报告 (**Technical Report**) 2018\n\n\n[使用局部卷积修复不规则孔洞的图像](https:\u002F\u002Farxiv.org\u002Fabs\u002F1804.07723) \u003Cbr>\n[Guilin Liu](https:\u002F\u002Fliuguilin1225.github.io\u002F)、[Fitsum A. Reda](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=quZ_qLYAAAAJ&hl=en)、[Kevin J. Shih](http:\u002F\u002Fweb.engr.illinois.edu\u002F~kjshih2\u002F)、[Ting-Chun Wang](https:\u002F\u002Ftcwang0509.github.io\u002F)、Andrew Tao、[Bryan Catanzaro](http:\u002F\u002Fctnzr.io\u002F) \u003Cbr>\nNVIDIA 公司 \u003Cbr>\n2018 年欧洲计算机视觉大会 (**ECCV**)  \u003Cbr> \u003Cbr>\n\n## 与零填充的对比\n\u003Cp align='center'>  \n  \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_6bb5c1a04820.png' width='440'\u002F>\n\u003C\u002Fp>\n\n\n## 安装\n安装说明请参见：https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fexamples\u002Ftree\u002Fmaster\u002Fimagenet\n\n\n## 使用方法：\n\n- 使用局部卷积进行填充\n```python\n# 带零填充的标准卷积层\nnn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\n\n# 基于局部卷积的填充\nPartialConv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\n```\n\n- 使用局部卷积进行图像修复时，将 `multi_channel` 和 `return_mask` 都设置为 `True`\n```python\n# 用于修复的局部卷积（使用多通道并更新掩码）\nPartialConv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False, multi_channel=True, return_mask=True)\n```\n\n## 使用 AMP 进行图像修复的混合精度训练\n- 安装：要启用混合精度支持，请先从以下地址安装 apex：[https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex)\n- 必需更改 #1（常规更改）：AMP 所需的常规更改\n```python\nfrom apex import amp\n\n# 初始化模型和优化器\nself.model, self.optimizer = amp.initialize(self.model, self.optimizer, opt_level=args.amp_opt_level)\n\n# 初始化 VGG 损失函数\u002F提取器\nself.vgg_feat_loss = amp.initialize(self.vgg_feat_loss, opt_level=args.amp_opt_level)\n\n# 缩放损失\nwith amp.scale_loss(total_loss, self.g_optimizer) as scaled_loss:\n    scaled_loss.backward()\n```\n\n- 必需更改 #2（Gram 矩阵损失）：在计算 Gram 矩阵损失时，将一步除法改为两步小除法\n  - 从 [一步除法](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Floss.py#L38)：`gram = features.bmm(features_t) \u002F (ch * h * w)`\n  - 改为 [两步小除法](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Floss.py#L31)：\n```python\ninput = torch.zeros(b, ch, ch).type(features.type())\ngram = torch.baddbmm(input, features, features_t, beta=0, alpha=1.\u002F(ch * h * w), out=None)\n```\n\n- 必需更改 #3（小常数）：将小常数稍微增大（例如从 1e-8 增至 1e-6）\n  - 从 [1e-8](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Fpartialconv2d.py#L64)：`self.mask_ratio = self.slide_winsize\u002F(self.update_mask + 1e-8)`\n  - 至 [1e-6](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fblob\u002Fmaster\u002Fmodels\u002Fpartialconv2d.py#L63)：`self.mask_ratio = self.slide_winsize\u002F(self.update_mask + 1e-6)`\n\n\n## 使用局部卷积填充训练 ImageNet\n- 使用零填充的 ResNet50（默认填充）\n```python\npython main.py -a resnet50 --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n- 使用局部卷积填充的 ResNet50\n```python\npython main.py -a pdresnet50 --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n- 使用零填充的 vgg16_bn（默认填充）\n```python\npython main.py -a vgg16_bn --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n- 使用局部卷积填充的 vgg16_bn\n```python\npython main.py -a pdvgg16_bn --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n### 带有局部卷积填充的 VGG 和 ResNet 网络的预训练检查点（权重）：\n```python\nhttps:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Ft6flbuoipyzqid8\u002FAACJ8rtrF6V5b9348aG5PIhia?dl=0\n```\n\n\n## 五次运行中与零填充、反射填充和复制填充的对比\n\u003Cp align='center'>  \n  \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_10144d6358fc.png' width='660'\u002F>\n\u003C!--   \u003Cimg src='https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_readme_d66b237aa357.png' width='660'\u002F> -->\n\u003C\u002Fp>\n\n每次运行采用单裁剪测试时的最佳 top-1 准确率。\\*\\_zero、\\*\\_pd、\\*\\_ref 和 \\*\\_rep 分别表示对应模型分别采用零填充、局部卷积填充、反射填充和复制填充。\\*\\_best 表示每次训练运行中的最佳验证分数。平均值代表 5 次运行的平均准确率。差异列表示与采用零填充的相应网络相比的差异。标准差列表示 5 次运行准确率的标准差。PT\\_official 表示 PyTorch 官网发布的相应官方准确率：https:\u002F\u002Fpytorch.org\u002Fdocs\u002Fstable\u002Ftorchvision\u002Fmodels.html\n\n## 引用\n```\n@inproceedings{liu2018partialpadding,\n   author    = {刘桂林、凯文·J·施、王廷春、菲茨姆·A·雷达、卡兰·萨普拉、于志东、安德鲁·陶、布莱恩·卡坦扎罗},\n   title     = {基于部分卷积的填充},\n   booktitle = {arXiv 预印本 arXiv:1811.11718},   \n   year      = {2018},\n}\n@inproceedings{liu2018partialinpainting,\n   author    = {刘桂林、菲茨姆·A·雷达、凯文·J·施、王廷春、安德鲁·陶、布莱恩·卡坦扎罗},\n   title     = {使用部分卷积对不规则孔洞进行图像修复},\n   booktitle = {欧洲计算机视觉大会 (ECCV)},   \n   year      = {2018},\n}\n```\n\n联系人：刘桂林（guilinl@nvidia.com）\n\n## 致谢\n我们感谢顾金伟、马蒂厄·勒、安杰伊·苏莱基、马雷克·科沃杰和刘洪福的有益讨论。","# PartialConv 快速上手指南\n\nPartialConv 是 NVIDIA 开源的 PyTorch 实现，主要包含**偏卷积层（Partial Convolution Layer）**。它既可作为优于传统零填充（Zero Padding）的新型填充方案用于图像分类任务，也可专门用于处理不规则缺失区域的**图像修复（Image Inpainting）**任务。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python**: 3.6+\n*   **深度学习框架**: PyTorch (建议最新稳定版)\n*   **GPU**: NVIDIA GPU (可选，但强烈推荐用于训练和推理)\n*   **前置依赖**:\n    *   基础 PyTorch 环境安装参考：[PyTorch Examples - ImageNet](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fexamples\u002Ftree\u002Fmaster\u002Fimagenet)\n    *   **混合精度训练支持 (可选)**: 若需进行图像修复的混合精度训练，需预先安装 NVIDIA Apex：\n        ```bash\n        git clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\n        cd apex\n        pip install -v --no-cache-dir .\u002F\n        ```\n        > **国内加速提示**: 若下载缓慢，可使用清华源或阿里源安装依赖：\n        > `pip install -v --no-cache-dir .\u002F -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n本项目主要为 PyTorch 模块实现，通常无需复杂的编译安装过程。您可以直接克隆仓库并将 `models` 目录下的代码集成到您的项目中，或者将其作为子模块引用。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv.git\ncd partialconv\n```\n\n*注：核心逻辑位于 `models\u002Fpartialconv2d.py`，使用时只需将该文件或其类定义引入您的项目即可。*\n\n## 基本使用\n\n### 1. 作为新型填充方案 (Padding)\n\n在传统卷积中替换 `nn.Conv2d` 即可实现基于偏卷积的填充，通常能获得比零填充更好的特征提取效果。\n\n```python\nfrom models.partialconv2d import PartialConv2d\nimport torch.nn as nn\n\n# 传统卷积层 (零填充)\n# nn.Conv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\n\n# 替换为偏卷积填充层\nmodel_layer = PartialConv2d(3, 16, kernel_size=3, stride=1, padding=1, bias=False)\n```\n\n### 2. 用于图像修复 (Image Inpainting)\n\n若用于图像修复任务，必须将 `multi_channel` 和 `return_mask` 参数设置为 `True`，以便网络能够处理多通道输入并动态更新掩码（Mask）。\n\n```python\nfrom models.partialconv2d import PartialConv2d\n\n# 配置用于图像修复的偏卷积层\ninpainting_layer = PartialConv2d(\n    3, 16, \n    kernel_size=3, \n    stride=1, \n    padding=1, \n    bias=False, \n    multi_channel=True, \n    return_mask=True\n)\n```\n\n### 3. 训练示例 (ImageNet 分类)\n\n如果您希望复现论文中在 ImageNet 上的分类结果，可以使用提供的 `main.py` 脚本。\n\n**使用 ResNet50 + 偏卷积填充：**\n```bash\npython main.py -a pdresnet50 --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n**使用 VGG16_bn + 偏卷积填充：**\n```bash\npython main.py -a pdvgg16_bn --data_train \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Ftrain --data_val \u002Fpath\u002FILSVRC\u002FData\u002FCLS-LOC\u002Fperfolder_val --batch-size 192 --workers 32 --prefix multigpu_b192 --ckptdirprefix experiment_1\u002F\n```\n\n> **预训练模型**: 作者提供了基于偏卷积填充的 VGG 和 ResNet 预训练权重，可从 [Dropbox 链接](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Ft6flbuoipyzqid8\u002FAACJ8rtrF6V5b9348aG5PIhia?dl=0) 下载。","某计算机视觉团队正在开发一款用于修复老照片破损区域的自动化系统，需要处理形状极不规则的污渍和划痕。\n\n### 没有 partialconv 时\n- 传统零填充（Zero Padding）将缺失区域强行补黑，导致卷积核在图像边缘计算时引入大量无效噪声，破坏特征提取。\n- 修复后的照片在破损边界处常出现明显的伪影、模糊或颜色断层，视觉上极不自然。\n- 模型难以区分“真正的黑色像素”与“被遮挡的缺失区域”，导致训练收敛缓慢且效果不稳定。\n- 面对复杂的不规则孔洞，算法往往只能生成平滑但缺乏纹理细节的填充内容，丢失了原图的结构信息。\n\n### 使用 partialconv 后\n- partialconv 动态调整卷积运算，仅基于有效像素进行加权计算，彻底消除了无效填充带来的噪声干扰。\n- 生成的修复结果在边界过渡平滑自然，能够精准还原复杂的纹理细节，肉眼几乎无法察觉修补痕迹。\n- 通过同步更新掩码（Mask），模型能明确感知哪些区域是缺失的，显著提升了训练速度和稳定性。\n- 即使面对极度不规则的大面积破损，也能依据周围上下文逻辑推理出合理的图像内容，保持结构一致性。\n\npartialconv 通过革新卷积层的填充机制，让 AI 在处理不规则图像缺失问题时，从“盲目猜测”转变为“精准推理”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA_partialconv_6bb5c1a0.png","NVIDIA","NVIDIA Corporation","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA_7dcf6000.png","",null,"https:\u002F\u002Fnvidia.com","https:\u002F\u002Fgithub.com\u002FNVIDIA",[83],{"name":84,"color":85,"percentage":86},"Python","#3572A5",100,1279,210,"2026-03-25T15:07:09","NOASSERTION","未说明","需要 NVIDIA GPU（用于混合精度训练 AMP），具体型号和显存大小未说明，需安装 NVIDIA Apex",{"notes":94,"python":91,"dependencies":95},"该工具是 PyTorch 实现的 Partial Convolution 层，主要用于图像修复（Inpainting）或作为新的填充方案。若需使用混合精度训练（AMP），必须额外安装 NVIDIA Apex 库，并修改损失函数计算中的除法步骤及常数项（如将 1e-8 改为 1e-6）以避免数值不稳定。代码示例基于 PyTorch 官方 ImageNet 训练脚本结构。",[96,97],"torch","apex",[14,13],"2026-03-27T02:49:30.150509","2026-04-06T05:19:30.514481",[102,107,112,117,122,127,132,137],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},17418,"人脸修复效果很好，模型是否使用了面部关键点（landmarks）等额外信息？","是的，在线演示中使用了额外的信息。具体来说，项目集成了一个第三方的面部关键点检测器来检测 landmarks，并将这些信息用于网络中以提升修复效果。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F12",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},17417,"在线演示（Demo）无法工作，上传图片后一直显示加载中怎么办？","该在线演示目前可能已停止维护或暂时下线（返回 502 错误）。项目作者似乎不再活跃，短期内可能不会修复。建议查看 GitHub 上的第三方实现版本，或者自行部署代码进行测试。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F24",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},17419,"将 nn.Conv2d 替换为 PartialConv2d 后，训练损失变为 NaN 或极大值，如何解决？","这通常是因为尝试在保留旧配置（使用 Conv2D）的会话基础上恢复训练导致的冲突。解决方法是从头开始训练（Starting from scratch）。此外，请检查代码中 `self.mask_ratio` 的值：内部区域应为 1，边缘为 1.5，角落为 2.25。如果不符合，请参考官方代码库中的最新实现进行修正。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F16",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},17420,"PartialConv2d 的实现中，为什么是在卷积和添加偏置后才应用掩码，而不是在输入前应用？","必须在添加偏置（bias）之后应用掩码，以确保空洞区域（hole regions）的值为 0，而不是等于偏置值。虽然理论上先对输入掩码更安全（防止输入空洞区非零），但当前实现逻辑要求输出端强制归零。如果输入的空洞值未设为 0，建议在输入端也先进行掩码处理以确保安全。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F6",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},17421,"在哪里可以下载基于 ImageNet 预训练的 Partial Convolution 模型权重？","VGG 和 ResNet 网络的预训练权重可通过以下链接下载：https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Ft6flbuoipyzqid8\u002FAACJ8rtrF6V5b9348aG5PIhia?dl=0。另外，如果你在场景解析任务中会对 backbone 进行微调（fine-tune），也可以直接使用现有的零填充（zero padding）预训练模型，只需将代码中的 `nn.Conv2d` 替换为 `PartialConv2d` 即可，参数量完全相同，充分微调后效果差异不大。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F2",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},17422,"在解码器部分连接特征和掩码时，传入 Pconv 层报错通道数不匹配（期望 1 通道却得到 2 通道），如何处理？","需要在初始化 PartialConv 层时设置 `multi_channel=True`。作者的实现逻辑是将掩码的通道数设置为与图像特征通道数一致（例如特征形状为 [8, 64, 32, 32]，掩码也应为 [8, 64, 32, 32]），而不是简单的单通道掩码。虽然这种 naive 实现会消耗更多内存，但能解决通道不匹配的问题。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F31",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},17423,"仓库中只有训练代码，如何测试图像修复（inpainting）效果？","该仓库主要包含用于分类任务的 Partial Conv 填充层的训练和测试代码，并不包含完整的图像修复系统。要测试图像修复，可以使用在线演示（如果可用），或者参考 GitHub 上的第三方实现。部分实现细节的差异讨论可参考：http:\u002F\u002Fmasc.cs.gmu.edu\u002Fwiki\u002Fpartialconv。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F8",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},17424,"在图像修复架构中，中间特征映射层必须全部使用 Partial Conv 吗？可以用普通卷积吗？","虽然论文提到将所有卷积层替换为 Partial Conv 层，但在实际架构设计中，输入层因为需要处理掩码所以必须使用 Partial Conv。对于中间的特征映射层，如果掩码信息已经通过特定方式传递或不再需要动态更新掩码，使用普通卷积在某些情况下也是可行的，但这取决于具体的网络设计和任务需求。","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpartialconv\u002Fissues\u002F26",[]]