[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-CoinCheung--pytorch-loss":3,"tool-CoinCheung--pytorch-loss":62},[4,18,26,36,46,54],{"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},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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"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",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":68,"readme_en":69,"readme_zh":70,"quickstart_zh":71,"use_case_zh":72,"hero_image_url":73,"owner_login":74,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":76,"owner_url":78,"languages":79,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":97,"env_deps":99,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":155},8735,"CoinCheung\u002Fpytorch-loss","pytorch-loss","label-smooth, amsoftmax, partial-fc, focal-loss, triplet-loss, lovasz-softmax. Maybe useful ","pytorch-loss 是一个专为 PyTorch 开发者打造的损失函数与算子集合库，旨在简化深度学习模型训练中的复杂组件实现。它广泛收录了标签平滑（Label Smooth）、AMSoftmax、Focal Loss、Triplet Loss、Lovasz Softmax 以及各类 IoU 变体（GIoU\u002FDIoU\u002FCIoU）等主流算法，有效解决了研究人员在复现前沿论文或优化特定任务（如人脸识别、语义分割、目标检测）时，需重复编写底层代码的痛点。\n\n该工具特别适合 AI 算法工程师、科研人员及深度学习爱好者使用。其核心亮点在于对关键算子提供了多种实现版本：既有基于纯 PyTorch 的易用版本，也有利用 CUDA 扩展加速的高性能版本（标记为 V3）。通过自定义反向传播公式和单核 CUDA 优化，V3 版本在显著降低显存占用的同时提升了计算速度。此外，pytorch-loss 还集成了 Swish、Mish 等激活函数，坐标卷积（CoordConv）、动态卷积（Dynamic Conv）等特殊层，以及指数移动平均（EMA）策略，甚至包含高效的 CUDA 版 One-hot 编码功能","pytorch-loss 是一个专为 PyTorch 开发者打造的损失函数与算子集合库，旨在简化深度学习模型训练中的复杂组件实现。它广泛收录了标签平滑（Label Smooth）、AMSoftmax、Focal Loss、Triplet Loss、Lovasz Softmax 以及各类 IoU 变体（GIoU\u002FDIoU\u002FCIoU）等主流算法，有效解决了研究人员在复现前沿论文或优化特定任务（如人脸识别、语义分割、目标检测）时，需重复编写底层代码的痛点。\n\n该工具特别适合 AI 算法工程师、科研人员及深度学习爱好者使用。其核心亮点在于对关键算子提供了多种实现版本：既有基于纯 PyTorch 的易用版本，也有利用 CUDA 扩展加速的高性能版本（标记为 V3）。通过自定义反向传播公式和单核 CUDA 优化，V3 版本在显著降低显存占用的同时提升了计算速度。此外，pytorch-loss 还集成了 Swish、Mish 等激活函数，坐标卷积（CoordConv）、动态卷积（Dynamic Conv）等特殊层，以及指数移动平均（EMA）策略，甚至包含高效的 CUDA 版 One-hot 编码功能。无论是快速原型验证还是追求极致性能的模型部署，pytorch-loss 都能提供灵活且高效的技术支持。","# pytorch-loss\n\nMy implementation of label-smooth, amsoftmax, partial-fc, focal-loss, dual-focal-loss, triplet-loss, giou\u002Fdiou\u002Fciou-loss\u002Ffunc, affinity-loss, pc_softmax_cross_entropy, ohem-loss(softmax based on line hard mining loss), large-margin-softmax(bmvc2019), lovasz-softmax-loss, and dice-loss(both generalized soft dice loss and batch soft dice loss). Maybe this is useful in my future work.\n\n\nAlso tried to implement swish, hard-swish(hswish) and mish activation functions.\n\nAdditionally, cuda based one-hot function is added (support label smooth).\n\nNewly add an \"Exponential Moving Average(EMA)\" operator.\n\nAdd convolution ops, such as coord-conv2d, and dynamic-conv2d(dy-conv2d).\n\nSome operators are implemented with pytorch cuda extension, so you need to compile it first: \n```\n    $ python -m pip install .\n```\n\nAfter installing, now you can pick up what you need and use the losses or ops like one of thes: \n```python\nfrom pytorch_loss import SwishV1, SwishV2, SwishV3\nfrom pytorch_loss import HSwishV1, HSwishV2, HSwishV3\nfrom pytorch_loss import MishV1, MishV2, MishV3\nfrom pytorch_loss import convert_to_one_hot, convert_to_one_hot_cu, OnehotEncoder\nfrom pytorch_loss import EMA\n\nfrom pytorch_loss import TripletLoss\nfrom pytorch_loss import SoftDiceLossV1, SoftDiceLossV2, SoftDiceLossV3\nfrom pytorch_loss import PCSoftmaxCrossEntropyV1, PCSoftmaxCrossEntropyV2\nfrom pytorch_loss import LargeMarginSoftmaxV1, LargeMarginSoftmaxV2, LargeMarginSoftmaxV3\nfrom pytorch_loss import LabelSmoothSoftmaxCEV1, LabelSmoothSoftmaxCEV2, LabelSmoothSoftmaxCEV3\nfrom pytorch_loss import GIOULoss, DIOULoss, CIOULoss\nfrom pytorch_loss import iou_func, giou_func, diou_func, ciou_func\nfrom pytorch_loss import FocalLossV1, FocalLossV2, FocalLossV3\nfrom pytorch_loss import Dual_Focal_loss\nfrom pytorch_loss import GeneralizedSoftDiceLoss, BatchSoftDiceLoss\nfrom pytorch_loss import AMSoftmax\nfrom pytorch_loss import AffinityFieldLoss, AffinityLoss\nfrom pytorch_loss import OhemCELoss, OhemLargeMarginLoss\nfrom pytorch_loss import LovaszSoftmaxV1, LovaszSoftmaxV3\nfrom pytorch_loss import TaylorCrossEntropyLossV1, TaylorCrossEntropyLossV3\nfrom pytorch_loss import InfoNceDist\nfrom pytorch_loss import PartialFCAMSoftmax\n\nfrom pytorch_loss import TaylorSoftmaxV1, TaylorSoftmaxV3\nfrom pytorch_loss import LogTaylorSoftmaxV1, LogTaylorSoftmaxV3\n\nfrom pytorch_loss import CoordConv2d, DY_Conv2d\n```\nNote that some losses or ops have 3 versions, like `LabelSmoothSoftmaxCEV1`, `LabelSmoothSoftmaxCEV2`, `LabelSmoothSoftmaxCEV3`, here `V1` means the implementation with pure pytorch ops and use `torch.autograd` for backward computation, `V2` means implementation with pure pytorch ops but use self-derived formula for backward computation, and `V3` means implementation with cuda extension. Generally speaking, the `V3` ops are faster and more memory efficient, since I have tried to squeeze everything in one cuda kernel function, which in most cases brings less overhead than a combination of pytorch ops.\n\n\nFor those who happen to find this repo, if you see errors in my code, feel free to open an issue to correct me.\n","# pytorch-loss\n\n我实现了一系列损失函数和操作符，包括标签平滑、AMSoftmax、部分FC、焦点损失、双焦点损失、三元组损失、GIoU\u002FDIoU\u002FCIoU损失及其相关函数、亲和力损失、PC Softmax交叉熵损失、OHEM损失（基于在线困难样本挖掘的Softmax损失）、大 margin Softmax（BMVC 2019）、LoVASZ Softmax损失以及Dice损失（包括广义软Dice损失和批次软Dice损失）。这些可能对我未来的工作有所帮助。\n\n\n我还尝试实现了Swish、Hard-Swish（HSwish）和Mish激活函数。\n\n此外，新增了一个基于CUDA的一热编码函数（支持标签平滑）。\n\n新添加了一个“指数移动平均（EMA）”算子。\n\n还增加了卷积操作符，例如坐标卷积2D（CoordConv2d）和动态卷积2D（DY_Conv2d）。\n\n部分算子是通过PyTorch的CUDA扩展实现的，因此需要先进行编译：\n```\n    $ python -m pip install .\n```\n\n编译安装完成后，您可以根据需要选择并使用相应的损失函数或操作符，例如：\n```python\nfrom pytorch_loss import SwishV1, SwishV2, SwishV3\nfrom pytorch_loss import HSwishV1, HSwishV2, HSwishV3\nfrom pytorch_loss import MishV1, MishV2, MishV3\nfrom pytorch_loss import convert_to_one_hot, convert_to_one_hot_cu, OnehotEncoder\nfrom pytorch_loss import EMA\n\nfrom pytorch_loss import TripletLoss\nfrom pytorch_loss import SoftDiceLossV1, SoftDiceLossV2, SoftDiceLossV3\nfrom pytorch_loss import PCSoftmaxCrossEntropyV1, PCSoftmaxCrossEntropyV2\nfrom pytorch_loss import LargeMarginSoftmaxV1, LargeMarginSoftmaxV2, LargeMarginSoftmaxV3\nfrom pytorch_loss import LabelSmoothSoftmaxCEV1, LabelSmoothSoftmaxCEV2, LabelSmoothSoftmaxCEV3\nfrom pytorch_loss import GIOULoss, DIOULoss, CIOULoss\nfrom pytorch_loss import iou_func, giou_func, diou_func, ciou_func\nfrom pytorch_loss import FocalLossV1, FocalLossV2, FocalLossV3\nfrom pytorch_loss import Dual_Focal_loss\nfrom pytorch_loss import GeneralizedSoftDiceLoss, BatchSoftDiceLoss\nfrom pytorch_loss import AMSoftmax\nfrom pytorch_loss import AffinityFieldLoss, AffinityLoss\nfrom pytorch_loss import OhemCELoss, OhemLargeMarginLoss\nfrom pytorch_loss import LovaszSoftmaxV1, LovaszSoftmaxV3\nfrom pytorch_loss import TaylorCrossEntropyLossV1, TaylorCrossEntropyLossV3\nfrom pytorch_loss import InfoNceDist\nfrom pytorch_loss import PartialFCAMSoftmax\n\nfrom pytorch_loss import TaylorSoftmaxV1, TaylorSoftmaxV3\nfrom pytorch_loss import LogTaylorSoftmaxV1, LogTaylorSoftmaxV3\n\nfrom pytorch_loss import CoordConv2d, DY_Conv2d\n```\n\n需要注意的是，某些损失函数或操作符有三个版本，例如`LabelSmoothSoftmaxCEV1`、`LabelSmoothSoftmaxCEV2`、`LabelSmoothSoftmaxCEV3`。其中，“V1”表示仅使用纯PyTorch操作实现，并利用`torch.autograd`进行反向传播；“V2”同样使用纯PyTorch操作，但采用自行推导的公式进行反向传播；而“V3”则是通过CUDA扩展实现。通常来说，“V3”版本的算子速度更快、内存效率更高，因为我尽量将所有计算压缩到一个CUDA内核函数中，在大多数情况下，这样产生的开销比多个PyTorch操作的组合要小。\n\n\n如果恰好发现本仓库的用户在代码中发现了错误，请随时提交Issue指出，以便我及时修正。","# pytorch-loss 快速上手指南\n\n`pytorch-loss` 是一个集成了多种常用及前沿损失函数、激活函数和卷积算子的 PyTorch 扩展库。它包含了标签平滑（Label Smooth）、AMSoftmax、Focal Loss、Triplet Loss、GIoU\u002FDIoU\u002FCIoU、Dice Loss 等实现，并提供了基于 CUDA 加速的高性能版本。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux (推荐，因为包含 CUDA 扩展编译) 或 macOS\u002FWindows (部分功能可能受限)。\n*   **Python 版本**：建议 Python 3.6+。\n*   **核心依赖**：\n    *   `PyTorch` (需安装与您的 CUDA 版本匹配的 PyTorch)\n    *   `torchvision`\n    *   `CUDA Toolkit` (如需使用 V3 版本的 CUDA 加速算子，必须安装对应的 CUDA 开发包)\n*   **编译工具**：由于部分算子通过 `pytorch cuda extension` 实现，系统需安装 `gcc` 或 `g++` 编译器。\n\n## 安装步骤\n\n该库包含自定义 CUDA 算子，因此需要通过源码编译安装。\n\n1.  **克隆仓库或下载源码**（如果您已有源码包可跳过此步）：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss.git\n    cd pytorch-loss\n    ```\n\n2.  **执行安装命令**：\n    使用 pip 进行本地安装，这将自动触发 CUDA 扩展的编译过程。\n    ```bash\n    python -m pip install .\n    ```\n    > **提示**：如果在国内网络环境下遇到下载依赖慢的问题，建议在 `pip` 命令后添加国内镜像源参数，例如：\n    > ```bash\n    > python -m pip install . -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    > ```\n\n3.  **验证安装**：\n    安装完成后，尝试导入模块确认无报错：\n    ```python\n    from pytorch_loss import FocalLossV1\n    print(\"Installation successful!\")\n    ```\n\n## 基本使用\n\n安装成功后，您可以直接从 `pytorch-loss` 中导入所需的损失函数、激活函数或算子。\n\n### 1. 导入模块\n库中的许多组件提供了三个版本（V1, V2, V3），区别如下：\n*   **V1**: 纯 PyTorch 实现，使用 `torch.autograd` 进行反向传播。\n*   **V2**: 纯 PyTorch 实现，但使用自定义推导公式进行反向传播。\n*   **V3**: 基于 CUDA 扩展实现，通常速度更快且显存效率更高（推荐在支持 CUDA 的环境中使用）。\n\n```python\n# 导入激活函数\nfrom pytorch_loss import SwishV1, HSwishV3, MishV2\n\n# 导入损失函数\nfrom pytorch_loss import FocalLossV3, LabelSmoothSoftmaxCEV3, TripletLoss\nfrom pytorch_loss import GIOULoss, SoftDiceLossV1, AMSoftmax\n\n# 导入工具算子\nfrom pytorch_loss import convert_to_one_hot_cu, EMA\nfrom pytorch_loss import CoordConv2d, DY_Conv2d\n```\n\n### 2. 使用示例\n以下是一个使用 `FocalLossV3` 和 `LabelSmoothSoftmaxCEV3` 的简单训练循环片段示例：\n\n```python\nimport torch\nimport torch.nn as nn\nfrom pytorch_loss import FocalLossV3, LabelSmoothSoftmaxCEV3\n\n# 初始化模型和优化器 (此处仅为示意)\nmodel = YourModel()\noptimizer = torch.optim.SGD(model.parameters(), lr=0.01)\n\n# 实例化损失函数\n# gamma=2.0, alpha=None 为 Focal Loss 常见默认参数，具体请参考源码或根据任务调整\ncriterion_focal = FocalLossV3(gamma=2.0) \ncriterion_label_smooth = LabelSmoothSoftmaxCEV3(lb_pos=0.9) # lb_pos 控制平滑程度\n\n# 模拟前向传播数据\ninputs = torch.randn(4, 10, requires_grad=True).cuda() # Batch=4, Classes=10\ntargets = torch.tensor([0, 1, 2, 3]).cuda()\n\n# 计算损失\nloss_focal = criterion_focal(inputs, targets)\nloss_ls = criterion_label_smooth(inputs, targets)\n\n# 反向传播\nloss_focal.backward()\n# optimizer.step() ...\n```\n\n### 3. 特殊算子使用示例 (EMA)\n使用指数移动平均（EMA）更新模型参数：\n\n```python\nfrom pytorch_loss import EMA\n\n# 初始化 EMA，decay 为衰减率\nema = EMA(model, decay=0.999)\n\n# 在训练步骤结束后更新 EMA 影子模型\nema.update()\n\n# 获取影子模型用于验证或测试\nshadow_model = ema.shadow\n```","某计算机视觉团队正在训练一个高精度人脸识别模型，面临类别不平衡和难样本挖掘的挑战。\n\n### 没有 pytorch-loss 时\n- 开发者需手动复现 AMSoftmax、Partial FC 等前沿损失函数，代码易出错且难以维护。\n- 原生 PyTorch 实现的反向传播效率较低，导致多卡训练时显存占用高、迭代速度慢。\n- 缺乏统一的 CUDA 加速接口，不同损失函数版本混杂，难以进行性能对比与切换。\n- 处理长尾分布数据时，缺少开箱即用的 Focal Loss 或 Label Smoothing 组合方案，调参周期长。\n- 自定义算子编译流程繁琐，团队成员环境配置不一致，常出现“在我机器上能跑”的协作问题。\n\n### 使用 pytorch-loss 后\n- 直接导入 `AMSoftmax` 或 `PartialFCAMSoftmax` 等成熟模块，无需重复造轮子，研发聚焦模型结构创新。\n- 调用 `V3` 版本的 CUDA 扩展算子（如 `LabelSmoothSoftmaxCEV3`），训练速度提升显著，显存占用更低。\n- 同一损失函数提供纯 PyTorch 与 CUDA 多种实现，可灵活切换以平衡开发调试效率与生产性能。\n- 内置 `FocalLoss`、`OhemCELoss` 等针对难样本优化的工具，快速缓解类别不平衡问题，收敛更稳定。\n- 通过 `pip install .` 一键完成包含自定义 CUDA 算子的部署，确保团队开发环境高度一致。\n\npytorch-loss 将复杂的损失函数实现标准化与加速化，让人脸识别模型的训练更高效、更稳定。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCoinCheung_pytorch-loss_53c2444c.png","CoinCheung","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCoinCheung_0a921336.jpg",null,"coin.cheung@gmail.com","https:\u002F\u002Fgithub.com\u002FCoinCheung",[80,84,88],{"name":81,"color":82,"percentage":83},"Python","#3572A5",55,{"name":85,"color":86,"percentage":87},"Cuda","#3A4E3A",42.5,{"name":89,"color":90,"percentage":91},"C++","#f34b7d",2.5,2261,375,"2026-04-12T14:04:17","MIT",4,"未说明","部分算子需要 NVIDIA GPU 及 CUDA 环境（需编译 PyTorch CUDA 扩展），具体型号和显存大小未说明",{"notes":100,"python":97,"dependencies":101},"该工具包含基于 PyTorch CUDA 扩展实现的算子，安装前必须先进行编译（运行 `python -m pip install .`）。部分损失函数和算子提供三个版本：V1（纯 PyTorch + autograd）、V2（纯 PyTorch + 自定义反向传播公式）、V3（CUDA 扩展，速度更快且更省显存）。若无需 CUDA 加速功能，可选择使用 V1 或 V2 版本。",[102,103],"torch","pytorch_loss (本库)",[14,45],[106,107,108,109,110,111,112,113,114,115,116],"pytorch","dice-loss","triplet-loss","amsoftmax","cuda","label-smoothing","focal-loss","mish","ema","lovasz-softmax","partial-fc","2026-03-27T02:49:30.150509","2026-04-18T09:20:49.566006",[120,125,130,135,140,145,150],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},39147,"Focal Loss 的实现公式是否正确？为什么与其他实现略有不同？","该实现与其他版本在数学推导上是完全等价的，但当前版本在数值稳定性上表现更好。代码通过 `pt = torch.exp(-BCE_loss)` 计算概率，再结合 alpha 和 gamma 参数计算最终损失，这种写法避免了直接计算幂次可能带来的不稳定问题。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F27",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},39148,"如何设计一个类似 SmoothL1 的损失函数，在不同标签区间使用不同的损失（如 L1 或 L2）？","在实际训练中，损失函数需要是连续且可导的，不能针对单个离散点（如 label=0 或 1）单独定义损失，否则无法计算梯度。建议使用连续的分段函数。如果需要在特定区间切换损失类型，可以利用 `torch.where` 基于连续的阈值条件进行选择，而不是基于离散的标签值。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F3",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},39149,"Dual Focal Loss 中的自适应类别权重层（ACW）如何在代码中实现？","ACW 层的作用是为每个类别学习一个权重向量，用于修正数据不平衡问题。在模型结构中，可以使用深度卷积（depthwise convolution）或 1x1 卷积来实现。具体做法是：将 backbone 输出的特征进行全局平均池化，然后通过一个 `nn.Conv2d`（设置 `groups=in_chan` 以实现逐通道乘法）处理，得到的输出即为加权后的 logits。这相当于对每个样本的 logits 向量进行逐元素乘法操作。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F6",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},39150,"使用 FocalLossV1 时报错 'loss has no attribute to backward()'，应该如何正确使用？","请确保实例化损失类后，先调用它计算损失值，再对损失值调用 backward()。正确的使用代码如下：\n```python\ncrit = FocalLossV1()\n# ... 前向传播获取 outputs ...\nloss = crit(outputs, targets)\nloss.backward()\n# ... 优化器步骤 ...\n```\n不要直接对损失类实例调用 backward，必须对计算出的标量损失 tensor 调用。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F12",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},39151,"reported partial_fc_amsoftmax 存在内存泄漏，是真的吗？","经维护者验证，该模块不存在内存泄漏问题。因为它仅使用了 PyTorch 原生算子，未编写自定义 CUDA 内核。如果遇到显存持续增加的情况，通常是由于用户自身的训练脚本配置错误（如未正确清零梯度、计算图未释放等），建议检查小批量训练时的显存变化及优化器配置。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F33",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},39152,"仓库中是否实现了论文《Regularizing Neural Networks by Penalizing Confident Output Distribution》中的损失函数？","截至该 Issue 讨论时，仓库中尚未实现该论文提出的损失函数。维护者表示之前未考虑过权限问题，如果有社区成员愿意实现并提交 PR，将会非常欢迎。目前用户若需使用该功能，可能需要参考论文自行实现。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F32",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},39153,"仓库是否有 Rank Loss（尤其是 Listwise Loss）的实现计划？","维护者明确表示目前没有关于 Rank Loss 的工作或实现计划。该仓库主要关注分类任务的损失函数。对于排序任务（Ranking task），建议参考其他专门的项目，例如 `ptranking`。","https:\u002F\u002Fgithub.com\u002FCoinCheung\u002Fpytorch-loss\u002Fissues\u002F35",[]]