[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-leaderj1001--Attention-Augmented-Conv2d":3,"tool-leaderj1001--Attention-Augmented-Conv2d":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":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":83,"owner_website":83,"owner_url":84,"languages":85,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":23,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":102,"github_topics":103,"view_count":23,"oss_zip_url":83,"oss_zip_packed_at":83,"status":16,"created_at":106,"updated_at":107,"faqs":108,"releases":139},2575,"leaderj1001\u002FAttention-Augmented-Conv2d","Attention-Augmented-Conv2d","Implementing Attention Augmented Convolutional Networks using Pytorch","Attention-Augmented-Conv2d 是一个基于 PyTorch 实现的开源项目，旨在复现论文《Attention Augmented Convolutional Networks》中提出的注意力增强卷积网络。传统卷积神经网络擅长提取局部特征，但在捕捉图像全局依赖关系上存在局限；该工具通过将自注意力机制与标准卷积操作相结合，让模型在保留局部感知能力的同时，也能“看见”并理解图像的全局上下文信息，从而提升视觉任务的表现。\n\n该项目主要解决了原始论文仅提供 TensorFlow 版本的问题，为广大的 PyTorch 用户提供了便捷、高效的实现方案。它特别适合深度学习研究人员和开发者使用，尤其是那些希望在图像分类、目标检测等任务中探索注意力机制与卷积融合效果的工程师。\n\n技术亮点方面，Attention-Augmented-Conv2d 不仅完整还原了论文核心算法，还贴心地增加了相对位置编码（relative position encoding）的支持，并修复了相关参数学习的关键问题。此外，它对填充（padding）和多步长（stride）设置进行了优化，使其接口风格与 Py","Attention-Augmented-Conv2d 是一个基于 PyTorch 实现的开源项目，旨在复现论文《Attention Augmented Convolutional Networks》中提出的注意力增强卷积网络。传统卷积神经网络擅长提取局部特征，但在捕捉图像全局依赖关系上存在局限；该工具通过将自注意力机制与标准卷积操作相结合，让模型在保留局部感知能力的同时，也能“看见”并理解图像的全局上下文信息，从而提升视觉任务的表现。\n\n该项目主要解决了原始论文仅提供 TensorFlow 版本的问题，为广大的 PyTorch 用户提供了便捷、高效的实现方案。它特别适合深度学习研究人员和开发者使用，尤其是那些希望在图像分类、目标检测等任务中探索注意力机制与卷积融合效果的工程师。\n\n技术亮点方面，Attention-Augmented-Conv2d 不仅完整还原了论文核心算法，还贴心地增加了相对位置编码（relative position encoding）的支持，并修复了相关参数学习的关键问题。此外，它对填充（padding）和多步长（stride）设置进行了优化，使其接口风格与 PyTorch 原生的 nn.Conv2d 高度一致，降低了上手门槛。代码中内置的参数断言检查也能帮助用户避免常见的配置错误，确保实验的稳定性。无论是进行学术研究还是工业级模型迭代，这都是一个值得尝试的强力组件。","# Implementing Attention Augmented Convolutional Networks using Pytorch\n- In the paper, it is implemented as Tensorflow. So I implemented it with Pytorch.\n\n## Update (2019.05.11)\n- Fixed an issue where key_rel_w and key_rel_h were not found as learning parameters when using relative=True mode.\n- **In \"relative = True\" mode, you can see that \"key_rel_w\" and \"key_rel_h\" are learning parameters. In \"relative = False\" mode, you do not have to worry about the \"shape\" parameter.**\u003Cbr>\u003Cbr>\n\n- Example, relative=True, stride=1, shape=32\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.deivce('cuda' if use_cuda else 'cpu')\n\ntmp = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv1 = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=4, relative=True, stride=1, shape=32).to(device)\nconv_out1 = augmented_conv1(tmp)\nprint(conv_out1.shape) # (16, 20, 32, 32)\n\nfor name, param in augmented_conv1.named_parameters():\n    print('parameter name: ', name)\n```\n- As a result of parameter name, we can see \"key_rel_w\" and \"key_rel_h\".\n\n- Example, relative=True, stride=2, shape=16\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.deivce('cuda' if use_cuda else 'cpu')\n\ntmp = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv1 = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=4, relative=True, stride=2, shape=16).to(device)\nconv_out1 = augmented_conv1(tmp)\nprint(conv_out1.shape) # (16, 20, 16, 16)\n```\n- This is important, when using the \"relative = True\" mode, the stride * shape should be the same as the input shape. For example, if input is (16, 3, 32, 32) and stride = 2, the shape should be 16.\n\n## Update (2019.05.02)\n- I have added padding to the \"AugmentedConv\" part.\n- You can use it as you would with nn.conv2d.\n- I will attach the example below as well.\u003Cbr>\u003Cbr>\n\n- Example, relative=False, stride=1\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.deivce('cuda' if use_cuda else 'cpu')\n\ntemp_input = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=1, relative=False, stride=1).to(device)\nconv_out = augmented_conv(tmp)\nprint(conv_out.shape) # (16, 20, 32, 32), (batch_size, out_channels, height, width)\n```\n- Example, relative=False, stride=2\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.deivce('cuda' if use_cuda else 'cpu')\n\ntemp_input = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=1, relative=False, stride=2).to(device)\nconv_out = augmented_conv(tmp)\nprint(conv_out.shape) # (16, 20, 16, 16), (batch_size, out_channels, height, width)\n```\n\n- I added an assert for parameters (dk, dv, Nh).\n```python\nassert self.Nh != 0, \"integer division or modulo by zero, Nh >= 1\"\nassert self.dk % self.Nh == 0, \"dk should be divided by Nh. (example: out_channels: 20, dk: 40, Nh: 4)\"\nassert self.dv % self.Nh == 0, \"dv should be divided by Nh. (example: out_channels: 20, dv: 4, Nh: 4)\"\nassert stride in [1, 2], str(stride) + \" Up to 2 strides are allowed.\"\n```\n\n\n## I posted two versions of the \"Attention-Augmented Conv\"\n  - Paper version is [here](https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002Fattention_augmented_conv.py)\n  - AA-Wide-ResNet version is [here](https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002FAA-Wide-ResNet\u002Fattention_augmented_conv.py)\n\n# Reference\n## Paper\n- [Attention Augmented Convolutional Networks Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.09925)\n- Author, Irwan Bello, Barret Zoph, Ashish Vaswani, Jonathon Shlens\n- Quoc V.Le Google Brain\n## Wide-ResNet\n- [Github URL](https:\u002F\u002Fgithub.com\u002Fmeliketoy\u002Fwide-resnet.pytorch\u002Fblob\u002Fmaster\u002Fmain.py)\n- Thank you :)\n\n## Method\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_783a63914aa7.png)\n\n### Input Parameters\n- In the paper, ![CodeCogsEqn (2)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_c5bc7db26b94.gif)\n and ![CodeCogsEqn (3)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_461f91f3ab44.gif)\n are obtained using the following equations.\u003Cbr>\u003Cbr>\n![CodeCogsEqn](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_fd02391203e3.gif), ![CodeCogsEqn (1)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_cea18c677181.gif)\n\n- Experiments of parameters in paper\u003Cbr>\u003Cbr>\n![캡처](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_e7ebabe65bac.png)\n\n\n## Experiments\n- In the paper, they said that We augment the Wide-ResNet-28-10 by augmenting the first convolution of all residual blocks with relative attention using Nh=8 heads and κ=2, υ=0.2 and a minimum of 20 dimensions per head for the keys.\n\n| Datasets | Model | Accuracy | Epoch | Training Time |\n| :---: | :---: | :---: | :---: | :---: |\nCIFAR-10 | Wide-ResNet 28x10(WORK IN PROCESS) | | |\nCIFAR-100 | Wide-ResNet 28x10(WORK IN PROCESS) | | |\nCIFAR-100 | Just 3-Conv layers(channels: 64, 128, 192) | 61.6% | 100 | 22m\nCIFAR-100 | Just 3-Attention-Augmented Conv layers(channels: 64, 128, 192) | 59.82% | 35 | 2h 23m\n\n- I don't have enough GPUs. So, I have many difficulties in training.\n- I just want to see feasibility of this method(Attention-Augemnted Conv layer), I'll try about ResNet.\n- The above results show that there are many time differences. I will think about this part a bit more.\n  - I have seen the issue that the torch.einsum function is slow. [Link](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Fissues\u002F10661)\n  - When I execute the example code in the link, the result was:\u003Cbr>\u003Cbr>\n  ![캡처](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_9c1004640db2.png)\n   - using cuda\u003Cbr>\u003CBr>\n   ![캡처](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_d5f90171a5e6.png)\n \n## Time complexity\n- I compared the time complexity of \"relative = True\" and \"relative = False\".\n- I'll compare the performance of the two different values(relative=True, relative=False).\n- In addition, I will consider ways to reduce time complexity in \"relative = True\".\u003Cbr>\n![time_complexity](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_c8626baf3fe4.png)\n  \n## Requirements\n- tqdm==4.31.1\n- torch==1.0.1\n- torchvision==0.2.2\n\n\n","# 使用 PyTorch 实现注意力增强卷积网络\n- 论文中是用 TensorFlow 实现的，所以我用 PyTorch 重新实现了一遍。\n\n## 更新（2019年5月11日）\n- 修复了在使用 `relative=True` 模式时，无法找到 `key_rel_w` 和 `key_rel_h` 作为可学习参数的问题。\n- **在 `relative = True` 模式下，可以看到 `key_rel_w` 和 `key_rel_h` 是可学习的参数。而在 `relative = False` 模式下，则无需担心 `shape` 参数。**\u003Cbr>\u003Cbr>\n\n- 示例：`relative=True`，步幅为1，`shape=32`\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.device('cuda' if use_cuda else 'cpu')\n\ntmp = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv1 = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=4, relative=True, stride=1, shape=32).to(device)\nconv_out1 = augmented_conv1(tmp)\nprint(conv_out1.shape) # (16, 20, 32, 32)\n\nfor name, param in augmented_conv1.named_parameters():\n    print('parameter name: ', name)\n```\n- 从参数名称中可以看出，确实存在 `key_rel_w` 和 `key_rel_h`。\n\n- 示例：`relative=True`，步幅为2，`shape=16`\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.device('cuda' if use_cuda else 'cpu')\n\ntmp = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv1 = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=4, relative=True, stride=2, shape=16).to(device)\nconv_out1 = augmented_conv1(tmp)\nprint(conv_out1.shape) # (16, 20, 16, 16)\n```\n- 需要注意的是，在使用 `relative = True` 模式时，步幅乘以 `shape` 的结果应等于输入图像的尺寸。例如，如果输入是 `(16, 3, 32, 32)`，且步幅为2，则 `shape` 应设置为16。\n\n## 更新（2019年5月2日）\n- 我为“AugmentedConv”部分添加了填充功能。\n- 使用方式与 `nn.conv2d` 相同。\n- 下面也会附上示例。\u003Cbr>\u003Cbr>\n\n- 示例：`relative=False`，步幅为1\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.is_available()\ndevice = torch.device('cuda' if use_cuda else 'cpu')\n\ntemp_input = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv = AugmentedConv(in_channels=3, out_channels=20, kernel_size=3, dk=40, dv=4, Nh=1, relative=False，stride=1).to(device)\nconv_out = augmented_conv(tmp)\nprint(conv_out.shape) # (16, 20, 32, 32)，(batch_size, out_channels, height, width)\n```\n- 示例：`relative=False`，步幅为2\n```python\nimport torch\n\nfrom attention_augmented_conv import AugmentedConv\n\nuse_cuda = torch.cuda.isAvailable()\ndevice = torch.device('cuda' if use_cuda else 'cpu')\n\ntemp_input = torch.randn((16, 3, 32, 32)).to(device)\naugmented_conv = AugmentedConv(in_channels=3, out_channels=20，kernel_size=3，dk=40，dv=4，Nh=1，relative=False，stride=2).to(device)\nconv_out = augmented_conv(tmp)\nprint(conv_out.shape) # (16, 20，16，16)，(batch_size，out_channels，height，width)\n```\n\n- 我为参数（`dk`、`dv`、`Nh`）添加了断言检查。\n```python\nassert self.Nh != 0, \"integer division or modulo by zero, Nh >= 1\"\nassert self.dk % self.Nh == 0, \"dk should be divided by Nh. (example: out_channels: 20, dk: 40, Nh: 4)\"\nassert self.dv % self.Nh == 0, \"dv should be divided by Nh. (example: out_channels: 20, dv: 4, Nh: 4)\"\nassert stride in [1, 2], str(stride) + \" Up to 2 strides are allowed.\"\n```\n\n\n## 我发布了两种版本的“注意力增强卷积”\n- 论文版本在此处：[https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002Fattention_augmented_conv.py](https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002Fattention_augmented_conv.py)\n- AA-Wide-ResNet 版本在此处：[https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002FAA-Wide-ResNet\u002Fattention_augmented_conv.py](https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fblob\u002Fmaster\u002FAA-Wide-ResNet\u002Fattention_augmented_conv.py)\n\n# 参考资料\n## 论文\n- [注意力增强卷积网络论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1904.09925)\n- 作者：Irwan Bello、Barret Zoph、Ashish Vaswani、Jonathon Shlens\n- Quoc V.Le Google Brain\n## Wide-ResNet\n- [GitHub 地址](https:\u002F\u002Fgithub.com\u002Fmeliketoy\u002Fwide-resnet.pytorch\u002Fblob\u002Fmaster\u002Fmain.py)\n- 谢谢！\n\n## 方法\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_783a63914aa7.png)\n\n### 输入参数\n- 在论文中，![CodeCogsEqn (2)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_c5bc7db26b94.gif)\n 和 ![CodeCogsEqn (3)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_461f91f3ab44.gif)\n 是通过以下公式计算得到的。\u003Cbr>\u003Cbr>\n![CodeCogsEqn](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_fd02391203e3.gif), ![CodeCogsEqn (1)](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_cea18c677181.gif)\n\n- 论文中关于参数的实验\u003Cbr>\u003Cbr>\n![截图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_e7ebabe65bac.png)\n\n\n## 实验\n- 论文中提到，他们通过在所有残差块的第一层卷积中加入相对注意力机制来增强 Wide-ResNet-28-10，使用 Nh=8 头，κ=2，υ=0.2，并且每个头的键至少有 20 维。\n\n| 数据集 | 模型 | 准确率 | 轮数 | 训练时间 |\n| :---: | :---: | :---: | :---: | :---: |\nCIFAR-10 | Wide-ResNet 28x10（正在进行中） | | |\nCIFAR-100 | Wide-ResNet 28x10（正在进行中） | | |\nCIFAR-100 | 仅3层卷积（通道数：64、128、192） | 61.6% | 100 | 22分钟 |\nCIFAR-100 | 仅3层注意力增强卷积（通道数：64、128、192） | 59.82% | 35 | 2小时23分钟 |\n\n- 我没有足够的 GPU，因此训练起来非常困难。\n- 我只是想看看这种方法（注意力增强卷积层）是否可行，所以会尝试一下 ResNet。\n- 上述结果显示，不同方法之间存在很大的时间差异。我会再深入思考这一部分。\n- 我注意到 `torch.einsum` 函数执行速度较慢。[链接](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Fissues\u002F10661)\n- 当我运行该链接中的示例代码时，结果如下：\u003Cbr>\u003Cbr>\n![截图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_9c1004640db2.png)\n - 使用 CUDA\u003Cbr>\u003CBr>\n![截图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_d5f90171a5e6.png)\n \n## 时间复杂度\n- 我比较了“relative = True”和“relative = False”的时间复杂度。\n- 我将对比这两种不同取值（`relative=True` 和 `relative=False`）的性能。\n- 此外，我还会考虑如何降低“relative = True”情况下的时间复杂度。\u003Cbr>\n![time_complexity](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_readme_c8626baf3fe4.png)\n  \n## 依赖项\n- tqdm==4.31.1\n- torch==1.0.1\n- torchvision==0.2.2","# Attention-Augmented-Conv2d 快速上手指南\n\n本指南帮助中国开发者快速在 PyTorch 环境中部署和使用注意力增强卷积网络（Attention-Augmented Convolutional Networks）。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux \u002F macOS \u002F Windows\n- **Python**: 建议 Python 3.6+\n- **GPU**: 推荐使用 NVIDIA GPU 以加速训练（可选，支持 CPU 运行）\n\n### 前置依赖\n请确保已安装以下核心库：\n- `torch` >= 1.0.1\n- `torchvision` >= 0.2.2\n- `tqdm` == 4.31.1\n\n> **国内加速建议**：建议使用清华源或阿里源安装依赖，以提升下载速度。\n> ```bash\n> pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple torch torchvision tqdm\n> ```\n\n## 安装步骤\n\n本项目主要为单文件实现，无需复杂的 `pip install` 包安装。请直接克隆仓库或将核心文件 `attention_augmented_conv.py` 下载到你的项目目录中。\n\n1. **克隆仓库**\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d.git\n   cd Attention-Augmented-Conv2d\n   ```\n\n2. **验证环境**\n   确保 `attention_augmented_conv.py` 文件位于你的 Python 路径或当前工作目录下，以便直接导入。\n\n## 基本使用\n\n以下是使用 `AugmentedConv` 替换标准 `nn.Conv2d` 的最简示例。该模块支持与 CUDA 自动适配。\n\n### 示例代码\n\n```python\nimport torch\nfrom attention_augmented_conv import AugmentedConv\n\n# 自动检测并使用 GPU\nuse_cuda = torch.cuda.is_available()\ndevice = torch.device('cuda' if use_cuda else 'cpu')\n\n# 创建随机输入张量 (Batch=16, Channels=3, Height=32, Width=32)\ntmp = torch.randn((16, 3, 32, 32)).to(device)\n\n# 初始化注意力增强卷积层\n# 关键参数说明:\n# in_channels\u002Fout_channels: 输入\u002F输出通道数\n# kernel_size: 卷积核大小\n# dk: Key 的总维度 (必须是 Nh 的倍数)\n# dv: Value 的总维度 (必须是 Nh 的倍数)\n# Nh: 注意力头数量\n# relative: 是否使用相对位置编码\n# stride: 步长 (仅支持 1 或 2)\naugmented_conv = AugmentedConv(\n    in_channels=3, \n    out_channels=20, \n    kernel_size=3, \n    dk=40, \n    dv=4, \n    Nh=4, \n    relative=True, \n    stride=1, \n    shape=32  # 当 relative=True 时，需指定输入形状；若 stride>1，shape 应为输出形状\n).to(device)\n\n# 前向传播\nconv_out = augmented_conv(tmp)\n\nprint(f\"输出形状：{conv_out.shape}\") \n# 预期输出：torch.Size([16, 20, 32, 32])\n\n# 查看可学习参数（确认 key_rel_w 和 key_rel_h 是否存在）\nfor name, param in augmented_conv.named_parameters():\n    print(f'parameter name: {name}')\n```\n\n### 关键注意事项\n1. **参数整除约束**：`dk` 和 `dv` 必须能被 `Nh` 整除，否则会触发断言错误。\n2. **Relative 模式下的 Shape**：\n   - 当 `relative=True` 时，必须提供 `shape` 参数。\n   - 若 `stride=1`，`shape` 等于输入特征图尺寸。\n   - 若 `stride=2`，`shape` 应等于输出特征图尺寸（即输入尺寸的一半）。\n3. **步长限制**：目前 `stride` 仅支持 `1` 或 `2`。","某医疗影像初创团队正在开发基于 PyTorch 的肺部 CT 结节检测系统，需要在有限的显存资源下提升模型对微小病灶的识别精度。\n\n### 没有 Attention-Augmented-Conv2d 时\n- 传统卷积神经网络（CNN）受限于固定感受野，难以捕捉结节与周围血管的全局上下文关联，导致假阳性率高。\n- 若强行引入标准自注意力机制（Self-Attention），计算复杂度随图像分辨率平方级增长，显存迅速溢出，无法处理高分辨率 CT 切片。\n- 为了平衡性能与资源，开发者被迫在“局部特征提取”和“全局关系建模”之间做妥协，模型架构调整繁琐且效果不稳定。\n- 在 TensorFlow 原版论文代码基础上进行 PyTorch 迁移时，需手动重写复杂的相对位置编码逻辑，容易因参数维度不匹配（如 `dk`、`Nh` 整除问题）引发调试灾难。\n\n### 使用 Attention-Augmented-Conv2d 后\n- 该工具将卷积的局部性与注意力的全局性融合，使模型既能精准定位结节边缘，又能理解其与肺叶结构的长距离依赖，显著降低误报。\n- 通过并行化设计，它在保持线性计算复杂度的同时实现了全局感知，无需牺牲输入分辨率即可在单张 GPU 上流畅训练。\n- 开发者可直接替换原有的 `nn.Conv2d` 层，灵活配置 `relative=True` 模式以自动学习相对位置偏置（`key_rel_w\u002Fh`），快速验证不同架构假设。\n- 内置的参数断言机制（如检查 `stride` 与 `shape` 的匹配关系）提前拦截维度错误，将原本数小时的移植调试时间缩短至分钟级。\n\nAttention-Augmented-Conv2d 通过高效融合局部与全局特征，让资源受限下的医疗影像高精度检测成为可能，同时极大降低了前沿算法的工程落地门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fleaderj1001_Attention-Augmented-Conv2d_fc52b019.png","leaderj1001","Myeongjun Kim","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fleaderj1001_27b50823.jpg","Computer Vision Research using Deep Learning","Pohang University of Science and Technology, Republic of Korea","Pohang","leaderj1001@gmail.com",null,"https:\u002F\u002Fgithub.com\u002Fleaderj1001",[86],{"name":87,"color":88,"percentage":89},"Python","#3572A5",100,654,101,"2026-03-05T09:04:46","MIT","未说明","非必需（代码自动检测并使用 CUDA，若无则回退至 CPU），具体型号和显存未说明，依赖已安装的 PyTorch CUDA 版本",{"notes":97,"python":94,"dependencies":98},"该工具是论文《Attention Augmented Convolutional Networks》的 PyTorch 实现。使用时需注意：1. 当开启相对位置编码（relative=True）时，步长（stride）与形状参数（shape）的乘积必须等于输入特征图的尺寸；2. 头数（Nh）必须能整除键维度（dk）和值维度（dv）；3. 步长（stride）仅支持 1 或 2；4. 作者提到 torch.einsum 函数在某些情况下运行较慢，可能影响训练时间。",[99,100,101],"torch==1.0.1","torchvision==0.2.2","tqdm==4.31.1",[13],[104,105],"attention-augmented-conv","pytorch","2026-03-27T02:49:30.150509","2026-04-06T07:16:15.246606",[109,114,119,124,129,134],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},11907,"如何修改卷积层的填充（padding）或进行下采样？","只需更改 \"AugmentedConv\" 中的参数即可。如果需要下采样，设置 stride=2。其他参数（如 dk, dv, Nh）请参考 README 文档，其中 out_channels 要求每个头的键至少为 20 维。例如，若输入尺寸为 (32, 32, 3)，设置 stride=2 后，输出尺寸将变为 (16, 16, out_channels)。具体下采样示例可参考 Wide-ResNet 文件夹中的代码。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F4",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},11908,"在 PyTorch 0.4.1 版本中运行代码时报错 'TypeError: einsum() takes 2 positional arguments but 3 were given' 如何解决？","这是由于 PyTorch 版本兼容性导致的。PyTorch 0.4.1 的 `torch.einsum` 函数签名与新版不同。如果您使用的是 PyTorch 0.4.1，请将代码中的调用方式从 `torch.einsum('bhxyd,md->bhxym', q, rel_k)` 修改为 `torch.einsum('bhxyd,md->bhxym', (q, rel_k))`，即将后续参数放入元组中传递。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F3",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},11909,"运行 _wide_layer 时出现 'TypeError: can't multiply sequence by non-int of type 'float'' 错误怎么办？","该错误通常是因为传入的 `num_blocks` 参数不是整数（int）而是浮点数（float）。请确保在调用 `_wide_layer` 函数时，`num_blocks` 参数显式设置为整数类型。例如，检查调用处是否传入了类似 `4.0` 的值，应改为 `4`。修复后，`strides = [stride] + [1]*(num_blocks-1)` 这一行即可正常执行。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F8",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},11910,"代码中的矩阵乘法顺序 `tf.matmul(weights, flat_v)` 是否应该改为 `torch.matmul(flat_v, weights)`？","不需要修改。当前代码逻辑与原始论文保持一致。虽然直觉上可能认为应该交换顺序，但考虑到张量的转置操作（`flat_v.transpose(2, 3)`），当前的实现 `weights` (形状：[batch, Nh, H*W, H*W]) 乘以 `flat_v` (形状：[batch, Nh, H*W, dv]) 在数学上是等价且正确的，能够得出预期的结果。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F6",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},11911,"在宽残差网络（Wide-ResNet）上运行时遇到巨大的 CUDA 内存溢出错误（如尝试分配 32768 GiB）如何解决？","这是因为对于较大尺寸的图像，当前的架构设计会导致内存需求呈平方级增长。解决方法是需要针对大尺寸图像修改网络架构，或者减小输入图像的尺寸以降低自注意力机制产生的内存开销（自注意力的内存复杂度为 O((HW)^2)）。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F18",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},11912,"使用 flake8 检查代码时发现多处 'use ==\u002F!= to compare str, bytes, and int literals' 警告，这意味着什么？","这意味着代码中使用了 `is` 关键字来比较字符串、字节或整数常量（例如 `if case is \"w\":`），这在 Python 中是不推荐的，因为 `is` 比较的是对象身份而非值相等性。应将所有此类比较改为使用 `==` 或 `!=`（例如改为 `if case == \"w\":`），以确保逻辑正确并消除警告。维护者已确认并修复了此问题。","https:\u002F\u002Fgithub.com\u002Fleaderj1001\u002FAttention-Augmented-Conv2d\u002Fissues\u002F2",[]]