[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-bermanmaxim--LovaszSoftmax":3,"tool-bermanmaxim--LovaszSoftmax":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":80,"owner_email":78,"owner_twitter":78,"owner_website":78,"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":97,"env_deps":98,"category_tags":103,"github_topics":104,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":109,"updated_at":110,"faqs":111,"releases":146},3017,"bermanmaxim\u002FLovaszSoftmax","LovaszSoftmax","Code for the Lovász-Softmax loss (CVPR 2018)","LovaszSoftmax 是一款专为神经网络图像分割任务设计的损失函数实现库，源自 CVPR 2018 的学术研究成果。它核心解决了传统交叉熵损失函数无法直接优化“交并比”（IoU）这一关键评估指标的痛点。在图像分割中，IoU 是衡量预测区域与真实区域重合度的黄金标准，但其本身不可导，难以直接用于梯度下降训练。LovaszSoftmax 通过引入数学上可处理的代理函数，让模型能够直接针对提升 IoU 进行端到端优化，从而显著改善分割边界的准确性和整体效果。\n\n该工具主要面向人工智能研究人员和深度学习开发者，特别是从事医学影像分析、卫星地图分类或自动驾驶场景理解等需要高精度像素级预测的专业人士。其独特技术亮点在于提供了 PyTorch 和 TensorFlow 双框架的独立实现，涵盖二分类及多分类场景，并附带详细的演示代码供快速上手。官方建议用户可尝试先用交叉熵预训练，再结合 LovaszSoftmax 进行微调，以获取最佳性能。作为经过顶会验证的开源项目，它为追求更高分割精度的算法迭代提供了强有力的数学支撑。","# The Lovász-Softmax loss: A tractable surrogate for the optimization of the intersection-over-union measure in neural networks\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbermanmaxim_LovaszSoftmax_readme_021de6c246bc.jpg\" height=\"180\">\n\nMaxim Berman, Amal Rannen Triki, Matthew B. Blaschko\n\nESAT-PSI, KU Leuven, Belgium.\n\nPublished in CVPR 2018. See [project page](http:\u002F\u002Fbmax.im\u002FLovaszSoftmax), [arxiv paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.08790), [paper on CVF open access](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018\u002Fhtml\u002FBerman_The_LovaSz-Softmax_Loss_CVPR_2018_paper.html).\n\n## PyTorch implementation of the loss layer (*pytorch* folder)\n**Files included:**\n* **lovasz_losses.py**: Standalone PyTorch implementation of the Lovász hinge and Lovász-Softmax for the Jaccard index\n* **demo_binary.ipynb**: Jupyter notebook showcasing binary training of a linear model, with the Lovász Hinge and with the Lovász-Sigmoid.\n* **demo_multiclass.ipynb**: Jupyter notebook showcasing multiclass training of a linear model with the Lovász-Softmax\n\nThe binary `lovasz_hinge` expects real-valued scores (positive scores correspond to foreground pixels). \n\nThe multiclass `lovasz_softmax` expect class probabilities (the maximum scoring category is predicted). First use a `Softmax` layer on the unnormalized scores.\n\n## TensorFlow implementation of the loss layer (*tensorflow* folder)\n**Files included:**\n* **lovasz_losses_tf.py**: Standalone TensorFlow implementation of the Lovász hinge and Lovász-Softmax for the Jaccard index\n* **demo_binary_tf.ipynb**: Jupyter notebook showcasing binary training of a linear model, with the Lovász Hinge and with the Lovász-Sigmoid.\n* **demo_multiclass_tf.ipynb**: Jupyter notebook showcasing the application of the multiclass loss with the Lovász-Softmax\n\n*Warning: the losses values and gradients have been tested to be the same as in PyTorch (see notebooks), however we have not used the TF implementation in a training setting.*\n\n## Usage\nSee the demos for simple proofs of principle.\n\n## FAQ\n* How should I use the Lovász-Softmax loss?\n\nThe loss can be optimized on its own, but the optimal optimization hyperparameters (learning rates, momentum) might be different from the best ones for cross-entropy. As discussed in the paper, optimizing the dataset-mIoU (Pascal VOC measure) is dependent on the batch size and number of classes. Therefore you might have best results by optimizing with cross-entropy first and finetuning with our loss, or by combining the two losses. \n\nSee for example how the work [*Land Cover Classification From Satellite Imagery With U-Net and Lovasz-Softmax Loss* by Alexander Rakhlin et al.](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018_workshops\u002Fw4\u002Fhtml\u002FRakhlin_Land_Cover_Classification_CVPR_2018_paper.html) used our loss in the [CVPR 18 DeepGlobe challenge](http:\u002F\u002Fdeepglobe.org\u002F).\n\n* Inference in Tensorflow is very slow...\n\nCompiling from Tensorflow master (or using a future distribution that includes commit [tensorflow\u002Ftensorflow@73e3215](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow\u002Fcommit\u002F73e3215c3a2edadbf9111cca44ab3d5ca146c327)) should solve this problem; see [issue #6](https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F6).\n\n## Citation\nPlease cite\n```\n@inproceedings{berman2018lovasz,\n  title={The Lov{\\'a}sz-Softmax loss: A tractable surrogate for the optimization of the intersection-over-union measure in neural networks},\n  author={Berman, Maxim and Rannen Triki, Amal and Blaschko, Matthew B},\n  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},\n  pages={4413--4421},\n  year={2018}\n}\n```\n","# 洛瓦什-Softmax损失：神经网络中交并比度量优化的一个可处理替代方案\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbermanmaxim_LovaszSoftmax_readme_021de6c246bc.jpg\" height=\"180\">\n\n马克西姆·伯曼，阿玛尔·兰嫩·特里基，马修·B·布拉什科\n\n比利时鲁汶大学ESAT-PSI实验室。\n\n发表于CVPR 2018。参见[项目页面](http:\u002F\u002Fbmax.im\u002FLovaszSoftmax)，[arXiv论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F1705.08790)，[CVF开放获取论文](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018\u002Fhtml\u002FBerman_The_LovaSz-Softmax_Loss_CVPR_2018_paper.html)。\n\n## PyTorch实现的损失层（*pytorch*文件夹）\n**包含文件：**\n* **lovasz_losses.py**: 独立的PyTorch实现，用于Jaccard指数的洛瓦什铰链损失和洛瓦什-Softmax损失。\n* **demo_binary.ipynb**: Jupyter笔记本，展示了使用洛瓦什铰链损失和洛瓦什-Sigmoid损失对线性模型进行二分类训练的过程。\n* **demo_multiclass.ipynb**: Jupyter笔记本，展示了使用洛瓦什-Softmax损失对线性模型进行多分类训练的过程。\n\n二分类的`lovasz_hinge`期望输入实数值得分（正分数对应前景像素）。\n\n多分类的`lovasz_softmax`期望输入类别概率（预测为得分最高的类别）。首先需要在未归一化的得分上应用一个`Softmax`层。\n\n## TensorFlow实现的损失层（*tensorflow*文件夹）\n**包含文件：**\n* **lovasz_losses_tf.py**: 独立的TensorFlow实现，用于Jaccard指数的洛瓦什铰链损失和洛瓦什-Softmax损失。\n* **demo_binary_tf.ipynb**: Jupyter笔记本，展示了使用洛瓦什铰链损失和洛瓦什-Sigmoid损失对线性模型进行二分类训练的过程。\n* **demo_multiclass_tf.ipynb**: Jupyter笔记本，展示了使用洛瓦什-Softmax损失进行多分类训练的应用。\n\n*警告：损失值和梯度已验证与PyTorch中的结果一致（详见笔记本），然而我们尚未在实际训练场景中使用过TF实现。*\n\n## 使用方法\n请参阅演示以获得简单的原理验证。\n\n## 常见问题解答\n* 我应该如何使用洛瓦什-Softmax损失？\n\n该损失可以单独优化，但其最优的优化超参数（学习率、动量）可能与交叉熵损失的最佳设置不同。正如论文中所讨论的那样，数据集mIoU（Pascal VOC指标）的优化效果取决于批次大小和类别数量。因此，您可能会先用交叉熵损失进行优化，再用我们的损失进行微调，或者将两者结合使用，从而获得最佳效果。\n\n例如，亚历山大·拉赫林等人在[*利用U-Net和洛瓦什-Softmax损失进行卫星影像地表覆盖分类*](http:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent_cvpr_2018_workshops\u002Fw4\u002Fhtml\u002FRakhlin_Land_Cover_Classification_CVPR_2018_paper.html)一文中，就在[CVPR 18 DeepGlobe挑战赛](http:\u002F\u002Fdeepglobe.org\u002F)中使用了我们的损失。\n\n* 在TensorFlow中进行推理非常缓慢……\n\n从TensorFlow主分支编译（或使用包含提交[tensorflow\u002Ftensorflow@73e3215](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftensorflow\u002Fcommit\u002F73e3215c3a2edadbf9111cca44ab3d5ca146c327)的未来版本）应该可以解决这个问题；详情请参阅[issue #6](https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F6)。\n\n## 引用\n请引用以下文献：\n```\n@inproceedings{berman2018lovasz,\n  title={The Lov{\\'a}sz-Softmax loss: A tractable surrogate for the optimization of the intersection-over-union measure in neural networks},\n  author={Berman, Maxim and Rannen Triki, Amal and Blaschko, Matthew B},\n  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},\n  pages={4413--4421},\n  year={2018}\n}\n```","# LovaszSoftmax 快速上手指南\n\nLovaszSoftmax 是一种用于优化神经网络中交并比（IoU\u002FJaccard Index）指标的可微损失函数，特别适用于图像分割任务。本项目提供了 PyTorch 和 TensorFlow 的实现。\n\n## 环境准备\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python**: 3.6+\n*   **前置依赖**:\n    *   **PyTorch 用户**: 需安装 `torch` 和 `torchvision`。\n    *   **TensorFlow 用户**: 需安装 `tensorflow` (建议 1.x 或兼容的 2.x 版本，注意原项目主要针对 TF 1.x 测试)。\n    *   **演示运行**: 需安装 `jupyter` 和 `matplotlib` 以运行示例 Notebook。\n\n**国内加速安装建议**：\n推荐使用清华源或阿里源加速 Python 包安装：\n```bash\npip install torch torchvision -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n# 或\npip install tensorflow -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip install jupyter matplotlib -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 安装步骤\n\n本项目无需通过 pip 安装，直接克隆源码即可使用。\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax.git\n    cd LovaszSoftmax\n    ```\n\n2.  **验证文件**\n    进入对应框架文件夹确认核心文件存在：\n    *   PyTorch: `pytorch\u002Flovasz_losses.py`\n    *   TensorFlow: `tensorflow\u002Flovasz_losses_tf.py`\n\n## 基本使用\n\n### 1. PyTorch 使用示例\n\n将 `pytorch\u002Flovasz_losses.py` 复制到你的项目中，或直接导入。\n\n**二分类任务 (Binary Segmentation)**\n输入应为未经过 Sigmoid 的实数分数（logits），正分代表前景。\n\n```python\nimport torch\nfrom pytorch.lovasz_losses import lovasz_hinge\n\n# 假设 outputs 是模型输出的 logits (Batch, H, W)\n# 假设 targets 是真实的二值掩码 (Batch, H, W), 值为 0 或 1\noutputs = torch.randn(4, 512, 512).cuda()\ntargets = torch.randint(0, 2, (4, 512, 512)).float().cuda()\n\n# 计算 Lovasz Hinge Loss\nloss = lovasz_hinge(outputs, targets)\nloss.backward()\n```\n\n**多分类任务 (Multiclass Segmentation)**\n输入应为经过 Softmax 后的类别概率。\n\n```python\nimport torch\nimport torch.nn.functional as F\nfrom pytorch.lovasz_losses import lovasz_softmax\n\n# 假设 outputs 是模型输出的 logits (Batch, Num_Classes, H, W)\n# 假设 targets 是真实的类别索引 (Batch, H, W)\noutputs = torch.randn(4, 21, 512, 512).cuda()\ntargets = torch.randint(0, 21, (4, 512, 512)).cuda()\n\n# 1. 先应用 Softmax 获取概率\nprobs = F.softmax(outputs, dim=1)\n\n# 2. 计算 Lovasz Softmax Loss\nloss = lovasz_softmax(probs, targets)\nloss.backward()\n```\n\n### 2. TensorFlow 使用示例\n\n将 `tensorflow\u002Flovasz_losses_tf.py` 复制到你的项目中。\n\n```python\nimport tensorflow as tf\nfrom lovasz_losses_tf import lovasz_softmax_tf\n\n# 定义占位符或张量\n# logits: [batch, height, width, num_classes]\n# labels: [batch, height, width] (integer class indices)\nlogits = ... \nlabels = ...\n\n# 应用 Softmax\nprobs = tf.nn.softmax(logits)\n\n# 计算损失\nloss = lovasz_softmax_tf(probs, labels)\n\n# 优化步骤\noptimizer = tf.train.AdamOptimizer(learning_rate=1e-4)\ntrain_op = optimizer.minimize(loss)\n```\n\n> **提示**：对于多分类任务，务必先在网络末端添加 `Softmax` 层，再将结果传入 `lovasz_softmax` 函数；二分类任务则直接使用 `lovasz_hinge` 处理原始 logits。","某遥感影像分析团队正在训练一个 U-Net 模型，用于从卫星图像中精确提取道路网络，以支持城市交通规划。\n\n### 没有 LovaszSoftmax 时\n- **指标错位**：传统交叉熵损失函数优化的是像素级分类准确率，而非业务真正关心的道路连通性和完整性（即交并比 IoU），导致模型在评估指标上表现良好但实际路网破碎。\n- **类别不平衡敏感**：道路像素在整张卫星图中占比极低（背景占绝大多数），模型倾向于将所有像素预测为背景以“刷高”准确率，严重漏检细小道路。\n- **后处理成本高**：由于预测结果存在大量断裂和孔洞，工程师必须编写复杂的形态学后处理算法来修补路网，增加了工程维护难度和推理延迟。\n\n### 使用 LovaszSoftmax 后\n- **直接优化目标**：LovaszSoftmax 将不可导的 IoU 指标转化为可导的损失函数，让模型训练直接对齐“路网完整性”这一核心业务指标，显著提升了提取质量。\n- **鲁棒处理不平衡**：该损失函数通过排序机制天然抑制了背景主导梯度的问题，使模型能敏锐捕捉到稀疏的道路前景，大幅降低漏检率。\n- **端到端简化流程**：输出的道路掩膜更加连续完整，减少了对繁琐后处理算法的依赖，实现了从原始图像到可用矢量路网的更高效端到端推理。\n\nLovaszSoftmax 的核心价值在于它打破了分类准确率与几何重叠度之间的壁垒，让深度学习模型真正学会了“看懂”物体的整体结构而非仅仅识别像素。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbermanmaxim_LovaszSoftmax_021de6c2.jpg","bermanmaxim","Maxim Berman","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbermanmaxim_4645cc19.jpg",null,"Apple","Zurich","https:\u002F\u002Fgithub.com\u002Fbermanmaxim",[83,87],{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",97.6,{"name":88,"color":89,"percentage":90},"Python","#3572A5",2.4,1410,268,"2026-04-03T02:21:50","MIT",1,"","未说明",{"notes":99,"python":97,"dependencies":100},"该工具提供 PyTorch 和 TensorFlow 两种实现。二进制分类使用 lovasz_hinge（输入为实数值分数），多分类使用 lovasz_softmax（输入需先经过 Softmax 层处理为类别概率）。TensorFlow 版本虽经测试梯度与 PyTorch 一致，但作者注明尚未在实际训练场景中使用过。针对 TensorFlow 推理速度慢的问题，建议编译最新版 TensorFlow 或使用包含特定提交记录的版本。超参数（如学习率）可能与交叉熵损失不同，建议先用交叉熵预训练再微调，或组合使用两种损失函数。",[101,102,84],"PyTorch","TensorFlow",[13,14],[105,106,107,108],"image-segmentation","pytorch","neural-networks","loss-functions","2026-03-27T02:49:30.150509","2026-04-06T07:12:44.225733",[112,117,122,127,132,137,142],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},13908,"为什么从头训练模型时 Lovasz Softmax 损失效果不佳，甚至不如交叉熵损失？","Lovasz Softmax 损失特别适合用于微调（fine-tuning），而不是从头训练。这是因为该损失函数的优化特性使其在模型已经有一定基础表现时效果更好。建议先用正常的交叉熵损失完全训练模型，然后再用 Lovasz Softmax 进行微调。此外，也可以尝试将两种损失结合使用（例如加权求和），并在训练过程中逐渐降低交叉熵损失的权重，以引导学习过程。如果批量大小较小，单独使用该损失可能会优化图像级 IoU 而非数据集级 IoU，结合交叉熵有助于缓解此问题。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F5",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},13909,"在 TensorFlow\u002FKeras 中集成 Lovasz Softmax 时遇到梯度不可导错误或维度不匹配怎么办？","在 Keras 中，损失函数接收参数的顺序是 (y_true, y_pred)，这与某些实现假设的顺序相反，直接导致梯度计算错误。解决方法是确保输入顺序正确，并且不要对预测值（y_pred）使用 argmax，因为 argmax 不可导。正确的做法是：y_pred 应保持为包含各类分数的 4D 张量 (batch, height, width, classes)，而 y_true 应为 3D 的真实标签 (batch, height, width)。如果需要处理标签维度，应对 y_true 进行扩展或转换，而不是对 y_pred 取 argmax。另外，如果 y_pred 未归一化，请先通过 softmax 层。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F12",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},13910,"使用 Lovasz Softmax 后 mIoU 极低（如 0.003）或模型只预测背景类，原因是什么？","这通常是因为 Lovasz-Softmax 近似计算的是当前批次（batch）内的 IoU，而不是整个数据集的 IoU。当批量较小且某些批次中缺少特定类别（尤其是前景类）时，损失函数无法有效优化，导致模型收敛到只预测背景或不收敛。解决方案是使用 `classes='present'` 参数（或在代码中设置相应逻辑），这样损失计算只会考虑当前批次中实际存在的类别，从而避免空类别导致的梯度问题。对于二分类任务，如果某些批次只有背景，也需要确保逻辑能处理这种情况（如通过均衡采样或调整参数）。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F20",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},13911,"二分类分割任务中，如果某些批次只包含背景类，导致 Lovasz Softmax 无法学习，如何解决？","这是小批量训练中常见的问题，当批次中缺乏前景类时，针对特定类别的损失计算会失效。虽然多分类任务可以使用 `classes='present'` 来忽略缺失的类别，但在二分类中需要特别注意。推荐的解决方案是实施“均衡批次采样”（equibatch sampling），即在构建批次时强制包含一定比例的前景样本，确保每个批次中都有正负样本。此外，也可以尝试将 `per_image` 参数设置为 `True`，先计算每张图的损失再取平均，但这可能不如均衡采样有效。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F26",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},13912,"在 Python 3 中运行 PyTorch 实现时报错 \"name 'ifilterfalse' is not defined\" 如何修复？","这是因为 Python 3 中 `itertools` 模块的函数名称发生了变化。在 Python 2 中是 `ifilterfalse`，而在 Python 3 中更名为 `filterfalse`。修复方法是在代码导入部分添加别名或直接导入新名称。请将导入语句修改为：`from itertools import filterfalse as ifilterfalse` 或者直接在代码中将 `ifilterfalse` 替换为 `filterfalse` 并确保已正确导入。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F15",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},13913,"Lovasz Hinge 损失在 TensorFlow 中报错 \"Operation has None for gradient\" 是什么原因？","该错误通常是因为在计算图中使用了不可导的操作，如 `K.argmax`、`K.round` 或 `K.eval`。Lovasz Hinge 期望输入是连续的概率值或 logits，而不是经过硬阈值处理后的离散标签。请检查你的损失函数实现，确保没有对预测结果进行 `argmax` 或其他不可导操作。输入给损失函数的预测值应当保持其原始的浮点数形式，以便反向传播能够计算梯度。","https:\u002F\u002Fgithub.com\u002Fbermanmaxim\u002FLovaszSoftmax\u002Fissues\u002F10",{"id":143,"question_zh":144,"answer_zh":145,"source_url":116},13914,"Lovasz Softmax 的计算速度较慢，是否有加速建议？","Lovasz Softmax 的理论复杂度为 O(p log p)，因此原生实现确实比交叉熵损失慢。目前官方实现主要依赖 CPU 或通用 GPU 操作，速度受限。维护者指出，编写专用的 CUDA 内核可以显著加速计算。在等待优化版本期间，建议仅在微调阶段使用该损失，或者将其与计算更快的交叉熵损失结合使用（例如作为辅助损失），以平衡性能和训练速度。",[]]