[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-richardaecn--class-balanced-loss":3,"tool-richardaecn--class-balanced-loss":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},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 真正成长为懂上",152630,2,"2026-04-12T23:33:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"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",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":104,"forks":105,"last_commit_at":106,"license":107,"difficulty_score":108,"env_os":109,"env_gpu":110,"env_ram":109,"env_deps":111,"category_tags":116,"github_topics":117,"view_count":32,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":129,"updated_at":130,"faqs":131,"releases":161},7045,"richardaecn\u002Fclass-balanced-loss","class-balanced-loss","Class-Balanced Loss Based on Effective Number of Samples. CVPR 2019","class-balanced-loss 是一个基于“有效样本数”理论的类别平衡损失函数实现，源自 CVPR 2019 的获奖论文。它主要致力于解决深度学习中常见的“长尾分布”难题：当训练数据中各类别样本数量极度不均（即少数类样本稀缺，多数类样本过剩）时，传统模型往往倾向于预测多数类，导致对少数类的识别准确率大幅下降。\n\n通过引入有效样本数的概念，class-balanced-loss 能够动态地为不同类别的计算损失赋予权重，自动降低多数类的影响并提升少数类的关注度，从而在不进行复杂数据重采样或增强的情况下，显著改善模型在不平衡数据集上的泛化性能。该工具基于 TensorFlow 构建，提供了完整的代码实现，涵盖从 CIFAR 长尾数据集的生成、核心损失函数定义到在 Google Cloud TPU 上训练大规模数据集（如 ImageNet、iNaturalist）的全流程脚本。\n\n这款工具非常适合人工智能研究人员和算法工程师使用，特别是那些正在处理医疗影像、缺陷检测或自然场景识别等存在严重数据不平衡问题的开发者。其独特的技术亮点在于将理论推导转化为易于集成的代码模块，并支持灵活的超参数","class-balanced-loss 是一个基于“有效样本数”理论的类别平衡损失函数实现，源自 CVPR 2019 的获奖论文。它主要致力于解决深度学习中常见的“长尾分布”难题：当训练数据中各类别样本数量极度不均（即少数类样本稀缺，多数类样本过剩）时，传统模型往往倾向于预测多数类，导致对少数类的识别准确率大幅下降。\n\n通过引入有效样本数的概念，class-balanced-loss 能够动态地为不同类别的计算损失赋予权重，自动降低多数类的影响并提升少数类的关注度，从而在不进行复杂数据重采样或增强的情况下，显著改善模型在不平衡数据集上的泛化性能。该工具基于 TensorFlow 构建，提供了完整的代码实现，涵盖从 CIFAR 长尾数据集的生成、核心损失函数定义到在 Google Cloud TPU 上训练大规模数据集（如 ImageNet、iNaturalist）的全流程脚本。\n\n这款工具非常适合人工智能研究人员和算法工程师使用，特别是那些正在处理医疗影像、缺陷检测或自然场景识别等存在严重数据不平衡问题的开发者。其独特的技术亮点在于将理论推导转化为易于集成的代码模块，并支持灵活的超参数调整（如 Beta 值），让用户能轻松复现顶尖学术成果，快速提升模型在困难样本上的表现。","# Class-Balanced Loss Based on Effective Number of Samples\n\nTensorflow code for the paper:\n\n[*Class-Balanced Loss Based on Effective Number of Samples*](https:\u002F\u002Farxiv.org\u002Fabs\u002F1901.05555)\\\n[Yin Cui](https:\u002F\u002Fycui.me\u002F), Menglin Jia, [Tsung-Yi Lin](https:\u002F\u002Fvision.cornell.edu\u002Fse3\u002Fpeople\u002Ftsung-yi-lin\u002F), [Yang Song](https:\u002F\u002Fai.google\u002Fresearch\u002Fpeople\u002Fauthor38270), [Serge Belongie](http:\u002F\u002Fblogs.cornell.edu\u002Ftechfaculty\u002Fserge-belongie\u002F)\n\n\n## Dependencies:\n+ Python (3.6)\n+ Tensorflow (1.14)\n\n\n## Datasets:\n+ Long-Tailed [CIFAR](https:\u002F\u002Fwww.cs.toronto.edu\u002F~kriz\u002Fcifar.html).\nWe provide [a download link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NY3lWYRfsTWfsjFPxJUlPumy-WFeD7zK\u002F) that includes all the data used in our paper in .tfrecords format. The data was converted and generated by `src\u002Fgenerate_cifar_tfrecords.py` (original CIFAR) and `src\u002Fgenerate_cifar_tfrecords_im.py` (long-tailed CIFAR).\n\n\n## Effective Number of Samples:\nFor a visualization of the data and effective number of samples, please take a look at `data.ipynb`.\n\n\n## Key Implementation Details:\n+ [Weights for class-balanced loss](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L425-L430)\n+ [Focal loss](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L226-L266)\n+ [Assigning weights to different loss](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L325-L354)\n+ [Initialization of the last layer](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodel_base.py#L196)\n\n\n## Training and Evaluation:\nWe provide 3 .sh scripts for training and evaluation.\n+ On original CIFAR dataset:\n```\n.\u002Fcifar_trainval.sh\n```\n+ On long-tailed CIFAR dataset (the hyperparameter `IM_FACTOR` is the inverse of \"Imbalance Factor\" in the paper):\n```\n.\u002Fcifar_im_trainval.sh\n```\n+ On long-tailed CIFAR dataset using the proposed class-balanced loss (set non-zero `BETA`):\n```\n.\u002Fcifar_im_trainval_cb.sh\n```\n\n+ Run Tensorboard for visualization:\n```\ntensorboard --logdir=.\u002Fresults --port=6006\n```\n\n+ The figure below are the results of running ```.\u002Fcifar_im_trainval.sh``` and ```.\u002Fcifar_im_trainval_cb.sh```:\n\u003Cp float=\"left\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frichardaecn_class-balanced-loss_readme_8c0737de671e.png\" height=\"512\"\u002F>\n\u003C\u002Fp>\n\n\n## Training with TPU:\nWe train networks on iNaturalist and ImageNet datasets using [Google's Cloud TPU](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002F). The code for this section is in `tpu\u002F`. Our code is based on the official implementation of [Training ResNet on Cloud TPU](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002Fdocs\u002Ftutorials\u002Fresnet) and forked from https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftpu.\n\n\nData Preparation:\n+ Download datasets (except images) from [this link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ZHhMFJxsgXItJYKiM_VJ0lznj8XClgWF\u002F) and unzip it under `tpu\u002F`. The unzipped directory `tpu\u002Fraw_data\u002F` contains the training and validation splits. For raw images, please download from the following links and put them into the corresponding folders in `tpu\u002Fraw_data\u002F`:\n  + [iNaturalist 2017](https:\u002F\u002Fgithub.com\u002Fvisipedia\u002Finat_comp\u002Ftree\u002Fmaster\u002F2017)\n  + [iNaturalist 2018](https:\u002F\u002Fgithub.com\u002Fvisipedia\u002Finat_comp)\n  + [ImageNet (ILSVRC2012)](http:\u002F\u002Fwww.image-net.org\u002Fchallenges\u002FLSVRC\u002F2012\u002F)\n\n+ Convert datasets into .tfrecords format and upload to Google Cloud Storage (gcs) using `tpu\u002Ftools\u002Fdatasets\u002Fdataset_to_gcs.py`:\n```\npython dataset_to_gcs.py \\\n  --project=$PROJECT \\\n  --gcs_output_path=$GCS_DATA_DIR \\\n  --local_scratch_dir=$LOCAL_TFRECORD_DIR \\\n  --raw_data_dir=$LOCAL_RAWDATA_DIR\n```\n\nThe following 3 .sh scripts in `tpu\u002F` can be used to train and evaluate models on iNaturalist and ImageNet using Cloud TPU. For more details on how to use Cloud TPU, please refer to [Training ResNet on Cloud TPU](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002Fdocs\u002Ftutorials\u002Fresnet).\n\nNote that the [image mean and standard deviation](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Ftpu\u002Fmodels\u002Fofficial\u002Fresnet\u002Fresnet_main.py#L232-L238) and [input size](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Ftpu\u002Fmodels\u002Fofficial\u002Fresnet\u002Fresnet_preprocessing.py#L22-L27) need to be updated accordingly.\n\n+ On ImageNet (ILSVRC 2012):\n```\n.\u002Frun_ILSVRC2012.sh\n```\n+ On iNaturalist 2017:\n```\n.\u002Frun_inat2017.sh\n```\n+ On iNaturalist 2018:\n```\n.\u002Frun_inat2018.sh\n```\n\n+ The pre-trained models, including all logs viewable on tensorboard, can be downloaded from the following links:\n\n| Dataset          | Network   | Loss                      | Input Size | Download Link |\n|------------------|-----------|---------------------------|------------|---------------|\n| ILSVRC 2012      | ResNet-50 | Class-Balanced Focal Loss | 224        | [link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1SmLv1-D1143Cma4Y5bDxHUfXjOI_0Yvr\u002F) |\n| iNaturalist 2018 | ResNet-50 | Class-Balanced Focal Loss | 224        | [link](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1aNyYCfAUXP4up_hvOhAKQkBevc2e8lr8\u002F) |\n\n\n## Citation\nIf you find our work helpful in your research, please cite it as:\n```latex\n@inproceedings{cui2019classbalancedloss,\n  title={Class-Balanced Loss Based on Effective Number of Samples},\n  author={Cui, Yin and Jia, Menglin and Lin, Tsung-Yi and Song, Yang and Belongie, Serge},\n  booktitle={CVPR},\n  year={2019}\n}\n```\n","# 基于有效样本数的类别平衡损失\n\n论文的 TensorFlow 代码：\n\n[*基于有效样本数的类别平衡损失*](https:\u002F\u002Farxiv.org\u002Fabs\u002F1901.05555)  \n[Yin Cui](https:\u002F\u002Fycui.me\u002F)、Menglin Jia、[Tsung-Yi Lin](https:\u002F\u002Fvision.cornell.edu\u002Fse3\u002Fpeople\u002Ftsung-yi-lin\u002F)、[Yang Song](https:\u002F\u002Fai.google\u002Fresearch\u002Fpeople\u002Fauthor38270)、[Serge Belongie](http:\u002F\u002Fblogs.cornell.edu\u002Ftechfaculty\u002Fserge-belongie\u002F)\n\n## 依赖项：\n+ Python (3.6)\n+ Tensorflow (1.14)\n\n## 数据集：\n+ 长尾 [CIFAR](https:\u002F\u002Fwww.cs.toronto.edu\u002F~kriz\u002Fcifar.html)。  \n我们提供了一个下载链接 ([点击此处](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NY3lWYRfsTWfsjFPxJUlPumy-WFeD7zK\u002F))，其中包含了论文中使用的所有数据，格式为 .tfrecords。这些数据由 `src\u002Fgenerate_cifar_tfrecords.py`（原始 CIFAR）和 `src\u002Fgenerate_cifar_tfrecords_im.py`（长尾 CIFAR）转换并生成。\n\n## 有效样本数：\n有关数据和有效样本数的可视化，请参阅 `data.ipynb`。\n\n## 关键实现细节：\n+ [类别平衡损失的权重](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L425-L430)\n+ [焦点损失](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L226-L266)\n+ [为不同损失分配权重](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fcifar_main.py#L325-L354)\n+ [最后一层的初始化](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodel_base.py#L196)\n\n## 训练与评估：\n我们提供了 3 个用于训练和评估的 .sh 脚本。\n+ 在原始 CIFAR 数据集上：\n```\n.\u002Fcifar_trainval.sh\n```\n+ 在长尾 CIFAR 数据集上（超参数 `IM_FACTOR` 是论文中“不平衡因子”的倒数）：\n```\n.\u002Fcifar_im_trainval.sh\n```\n+ 在长尾 CIFAR 数据集上使用提出的类别平衡损失（设置非零 `BETA`）：\n```\n.\u002Fcifar_im_trainval_cb.sh\n```\n\n+ 运行 TensorBoard 进行可视化：\n```\ntensorboard --logdir=.\u002Fresults --port=6006\n```\n\n+ 下图展示了运行 ```.\u002Fcifar_im_trainval.sh``` 和 ```.\u002Fcifar_im_trainval_cb.sh``` 的结果：\n\u003Cp float=\"left\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frichardaecn_class-balanced-loss_readme_8c0737de671e.png\" height=\"512\"\u002F>\n\u003C\u002Fp>\n\n## 使用 TPU 训练：\n我们在 iNaturalist 和 ImageNet 数据集上使用 [Google Cloud TPU](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002F) 对网络进行训练。该部分的代码位于 `tpu\u002F` 目录下。我们的代码基于 [在 Cloud TPU 上训练 ResNet](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002Fdocs\u002Ftutorials\u002Fresnet) 的官方实现，并分叉自 https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Ftpu。\n\n数据准备：\n+ 从 [此链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1ZHhMFJxsgXItJYKiM_VJ0lznj8XClgWF\u002F) 下载除图像外的数据集，并将其解压到 `tpu\u002F` 目录下。解压后的目录 `tpu\u002Fraw_data\u002F` 包含训练集和验证集划分。对于原始图像，请从以下链接下载，并将其放入 `tpu\u002Fraw_data\u002F` 中的相应文件夹：\n  + [iNaturalist 2017](https:\u002F\u002Fgithub.com\u002Fvisipedia\u002Finat_comp\u002Ftree\u002Fmaster\u002F2017)\n  + [iNaturalist 2018](https:\u002F\u002Fgithub.com\u002Fvisipedia\u002Finat_comp)\n  + [ImageNet (ILSVRC2012)](http:\u002F\u002Fwww.image-net.org\u002Fchallenges\u002FLSVRC\u002F2012\u002F)\n\n+ 使用 `tpu\u002Ftools\u002Fdatasets\u002Fdataset_to_gcs.py` 将数据集转换为 .tfrecords 格式，并上传至 Google Cloud Storage (gcs)：\n```\npython dataset_to_gcs.py \\\n  --project=$PROJECT \\\n  --gcs_output_path=$GCS_DATA_DIR \\\n  --local_scratch_dir=$LOCAL_TFRECORD_DIR \\\n  --raw_data_dir=$LOCAL_RAWDATA_DIR\n```\n\n`tpu\u002F` 目录下的以下 3 个 .sh 脚本可用于在 iNaturalist 和 ImageNet 数据集上使用 Cloud TPU 训练和评估模型。有关如何使用 Cloud TPU 的更多详细信息，请参阅 [在 Cloud TPU 上训练 ResNet](https:\u002F\u002Fcloud.google.com\u002Ftpu\u002Fdocs\u002Ftutorials\u002Fresnet)。\n\n请注意，需要相应地更新 [图像均值和标准差](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Ftpu\u002Fmodels\u002Fofficial\u002Fresnet\u002Fresnet_main.py#L232-L238)以及 [输入尺寸](https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fblob\u002Fmaster\u002Ftpu\u002Fmodels\u002Fofficial\u002Fresnet\u002Fresnet_preprocessing.py#L22-L27)。\n\n+ 在 ImageNet (ILSVRC 2012) 上：\n```\n.\u002Frun_ILSVRC2012.sh\n```\n+ 在 iNaturalist 2017 上：\n```\n.\u002Frun_inat2017.sh\n```\n+ 在 iNaturalist 2018 上：\n```\n.\u002Frun_inat2018.sh\n```\n\n+ 预训练模型及其所有可在 TensorBoard 上查看的日志，可从以下链接下载：\n\n| 数据集          | 网络   | 损失                      | 输入尺寸 | 下载链接 |\n|------------------|-----------|---------------------------|------------|---------------|\n| ILSVRC 2012      | ResNet-50 | 类别平衡焦点损失 | 224        | [链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1SmLv1-D1143Cma4Y5bDxHUfXjOI_0Yvr\u002F) |\n| iNaturalist 2018 | ResNet-50 | 类别平衡焦点损失 | 224        | [链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1aNyYCfAUXP4up_hvOhAKQkBevc2e8lr8\u002F) |\n\n## 引用\n如果您在研究中发现我们的工作有所帮助，请按以下方式引用：\n```latex\n@inproceedings{cui2019classbalancedloss,\n  title={Class-Balanced Loss Based on Effective Number of Samples},\n  author={Cui, Yin and Jia, Menglin and Lin, Tsung-Yi and Song, Yang and Belongie, Serge},\n  booktitle={CVPR},\n  year={2019}\n}\n```","# Class-Balanced Loss 快速上手指南\n\n本指南基于论文《Class-Balanced Loss Based on Effective Number of Samples》，帮助开发者快速在长尾分布数据集上部署类别平衡损失函数。\n\n## 环境准备\n\n本项目依赖以下核心环境，建议使用 Python 虚拟环境进行隔离：\n\n*   **操作系统**: Linux \u002F macOS (Windows 需自行配置 TensorFlow 1.14 兼容环境)\n*   **Python**: 3.6\n*   **深度学习框架**: TensorFlow 1.14\n*   **硬件**: CPU 或 GPU (若使用 TPU 训练大型数据集如 ImageNet，需配置 Google Cloud TPU 环境)\n\n> **注意**：由于项目基于较旧的 TensorFlow 1.x 版本，若在现代环境中运行遇到困难，可考虑使用 `tensorflow-compat` 或在 Docker 容器中构建环境。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss.git\n    cd class-balanced-loss\n    ```\n\n2.  **安装依赖**\n    确保已安装 Python 3.6，然后安装 TensorFlow 1.14：\n    ```bash\n    pip install tensorflow==1.14\n    ```\n    *(国内用户推荐使用清华源加速安装)*\n    ```bash\n    pip install tensorflow==1.14 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n3.  **准备数据 (以 CIFAR 为例)**\n    项目提供了转换好的 `.tfrecords` 格式长尾 CIFAR 数据集下载链接。\n    *   **手动下载**：访问 [Google Drive 链接](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1NY3lWYRfsTWfsjFPxJUlPumy-WFeD7zK\u002F) 下载数据并解压。\n    *   **自行生成**：若需从原始 CIFAR 生成，运行以下脚本：\n        ```bash\n        python src\u002Fgenerate_cifar_tfrecords.py\n        python src\u002Fgenerate_cifar_tfrecords_im.py\n        ```\n\n## 基本使用\n\n以下演示如何在长尾 CIFAR 数据集上训练模型，并应用类别平衡损失（Class-Balanced Loss）。\n\n### 1. 启动训练\n\n项目提供了三个主要的 Shell 脚本，根据需求选择：\n\n*   **场景 A：在原始 CIFAR 数据集上训练（基准）**\n    ```bash\n    .\u002Fcifar_trainval.sh\n    ```\n\n*   **场景 B：在长尾 CIFAR 数据集上训练（不使用平衡损失）**\n    `IM_FACTOR` 参数控制不平衡程度（为论文中“不平衡因子”的倒数）。\n    ```bash\n    .\u002Fcifar_im_trainval.sh\n    ```\n\n*   **场景 C：在长尾 CIFAR 数据集上训练（启用类别平衡损失）**\n    **这是本工具的核心用法**。通过设置非零的 `BETA` 参数来激活类别平衡损失。\n    ```bash\n    .\u002Fcifar_im_trainval_cb.sh\n    ```\n\n### 2. 可视化监控\n\n训练过程中可使用 TensorBoard 查看损失曲线和准确率变化：\n\n```bash\ntensorboard --logdir=.\u002Fresults --port=6006\n```\n然后在浏览器中访问 `http:\u002F\u002Flocalhost:6006`。\n\n### 3. 大型数据集训练 (TPU)\n\n若需在 iNaturalist 或 ImageNet 上使用 Cloud TPU 训练，请进入 `tpu\u002F` 目录，按照 `README` 中的说明准备数据并运行对应的脚本（如 `.\u002Frun_ILSVRC2012.sh`）。需注意更新代码中的图像均值、标准差及输入尺寸以适配具体数据集。","某电商初创公司的算法团队正在构建一个商品缺陷检测系统，但训练数据中“严重破损”类样本极少，而“轻微划痕”类样本占据绝大多数，导致模型面临严重的长尾分布挑战。\n\n### 没有 class-balanced-loss 时\n- 模型严重偏向多数类，对占比较高的“轻微划痕”识别准确率高达 98%，但对稀有的“严重破损”几乎完全无法识别。\n- 团队尝试过简单的欠采样或过采样策略，前者浪费了宝贵的数据信息，后者则导致模型在少数类上过拟合，泛化能力差。\n- 调整分类阈值效果有限，往往在提升少数类召回率的同时，导致多数类的误报率激增，业务方无法接受。\n- 最终上线的模型漏检了大量高危缺陷商品，导致客户投诉率上升，直接影响了平台的信誉和营收。\n\n### 使用 class-balanced-loss 后\n- 基于有效样本数量（Effective Number）动态计算损失权重，自动给予“严重破损”等少数类更高的关注权重，无需人工繁琐调参。\n- 模型在保持多数类高精度的同时，将少数类的召回率提升了 40% 以上，显著降低了高危缺陷的漏检风险。\n- 训练过程更加稳定，避免了传统重采样方法带来的噪声干扰，模型在验证集上的整体 F1 分数达到最优平衡点。\n- 上线后缺陷拦截率大幅提升，客诉率下降，团队无需再为数据不平衡问题投入额外的人力进行数据增强或清洗。\n\nclass-balanced-loss 通过数学原理从根本上解决了长尾数据分布下的类别偏差问题，让模型在数据不均的现实场景中依然能做出公正、精准的判断。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frichardaecn_class-balanced-loss_8c0737de.png","richardaecn","Yin Cui","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frichardaecn_a4fdc0a4.jpg","Research Scientist at NVIDIA","NVIDIA","Mountain View, CA","richardaecn@gmail.com",null,"https:\u002F\u002Fycui.me\u002F","https:\u002F\u002Fgithub.com\u002Frichardaecn",[84,88,92,96,100],{"name":85,"color":86,"percentage":87},"Python","#3572A5",68.5,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",17.8,{"name":93,"color":94,"percentage":95},"Go","#00ADD8",12.8,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.8,{"name":101,"color":102,"percentage":103},"Dockerfile","#384d54",0.1,615,69,"2026-04-10T05:42:52","MIT",4,"未说明","标准训练未明确说明（基于 TensorFlow 1.14 通常需 NVIDIA GPU）；TPU 训练部分明确要求使用 Google Cloud TPU",{"notes":112,"python":113,"dependencies":114},"该工具主要提供两种运行环境：1. 本地 CPU\u002FGPU 环境：用于 CIFAR 数据集实验，依赖 TensorFlow 1.14 和 Python 3.6。2. TPU 环境：用于 iNaturalist 和 ImageNet 等大型数据集，代码位于 tpu\u002F 目录，基于 Google Cloud TPU 官方教程，需将数据转换为 .tfrecords 格式并上传至 Google Cloud Storage (GCS)。预训练模型和日志可通过提供的链接下载。","3.6",[115],"tensorflow==1.14",[14,15],[118,119,120,121,122,123,124,125,126,127,128],"computer-vision","deep-learning","tensorflow","cvpr2019","cvpr","cloud-tpu","inaturalist","imagenet","fine-grained-classification","fine-grained","fine-grained-visual-categorization","2026-03-27T02:49:30.150509","2026-04-13T16:41:56.859909",[132,137,142,147,152,156],{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},31707,"论文中有效数量公式 (1) 里的 `+1` 是如何推导出来的？","该公式基于图 2 中的几何解释推导而来。灰色区域体积代表 E_{n-1}。采样新数据时有两种情况：1) 概率为 p = E_{n-1}\u002FN 时，新数据落在灰色区域内，体积不变（仍为 E_{n-1}）；2) 概率为 1-p 时，新数据落在灰色区域外，体积增加 1（变为 E_{n-1} + 1）。因此，新的期望体积即为公式 (1) 所示：(1-p)(E_{n-1}+1) + p(E_{n-1})。","https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fissues\u002F6",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},31708,"为什么在 iNaturalist2018 数据集上要从头训练而不是使用 ImageNet 预训练模型？","选择从头训练主要基于以下原因：1) iNaturalist 数据集足够大，支持从头训练；2) ImageNet 数据存在偏差，为了排除其影响，作者希望不使用预训练权重；3) 为了保持与 ImageNet 训练相同的标准训练策略，确保实验对比的公平性。","https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fissues\u002F5",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},31709,"当类别样本数 n_y 很大时，CB-Loss 的权重 α 似乎总是等于 1，这是否意味着损失函数失效？","这是一个常见的误解。当 β 取值较小（如 0.1 到 0.9）且 n_y 很大时，权重确实趋近于 1。但在长尾分布任务中，关键在于将 β 设置为极接近 1 的值（例如 0.9999）。在这种极端设置下，即使对于样本数较多的类别，有效数量机制仍能产生显著的差异化权重，从而发挥作用。","https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fissues\u002F3",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},31710,"论文中提到“数据增强越强，唯一样本数 N 越小”，这与直觉相反，该如何理解？","这是一个尚未通过实验完全验证的假设，其核心直觉是：更强的数据增强技术能够生成更多的“近似重复”样本（near-duplicates）。这意味着原本被视为不同的样本，在强增强下被识别为同一实例的不同变体，从而减少了统计意义上的“唯一样本”总数 N。简而言之，强增强覆盖了更多的邻近区域，使得独立样本的数量估计值变小。","https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fissues\u002F4",{"id":153,"question_zh":154,"answer_zh":155,"source_url":141},31711,"在 CIFAR-10 长尾分布实验中，复现的基线准确率低于论文报告值（约低 2.7%），可能是什么原因？","这种情况通常源于训练策略的差异。根据项目维护者的回复，确保实验设置与论文一致至关重要：1) 确认是否使用了正确的随机种子；2) 检查是否严格遵循了论文中的标准训练策略（如优化器参数、学习率调度等）；3) 注意论文中针对 iNaturalist 等大数据集是从头训练的，未使用 ImageNet 预训练以排除数据偏差，复现时也需保持此设定。如果代码未修改但结果仍有差异，建议检查 PyTorch 版本或底层算子的数值精度差异。",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},31712,"计算 CB-Loss 的类别权重 (weights_per_cls) 时，应该基于整个数据集还是每个 batch？","应当基于**整个数据集**的类别分布来计算权重，而不是每个 batch。因为长尾分布是指整个数据集中各类别样本数量的不平衡，单个 batch 中可能由于随机采样导致某些类别样本数为 0，若基于 batch 计算会导致权重出现除零错误或剧烈波动。正确的做法是在训练前统计整个训练集中每个类别的总样本数 n_y，据此计算出固定的权重向量，并在训练过程中复用。","https:\u002F\u002Fgithub.com\u002Frichardaecn\u002Fclass-balanced-loss\u002Fissues\u002F10",[]]