[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-D-X-Y--NAS-Bench-201":3,"tool-D-X-Y--NAS-Bench-201":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 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[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":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":32,"env_os":90,"env_gpu":91,"env_ram":92,"env_deps":93,"category_tags":99,"github_topics":100,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":105,"updated_at":106,"faqs":107,"releases":108},7129,"D-X-Y\u002FNAS-Bench-201","NAS-Bench-201","NAS-Bench-201 API and Instruction","NAS-Bench-201 是一个专为神经架构搜索（NAS）领域设计的开源基准测试工具。它旨在解决以往 NAS 算法评估标准不统一、实验难以复现的痛点，为研究人员提供了一个算法无关的固定搜索空间，使得不同方法的性能对比更加公平和高效。\n\n该工具的核心亮点在于其精心设计的搜索空间：基于流行的细胞结构理念，将神经网络单元抽象为有向无环图，仅包含 4 个节点和 5 种基础操作选项，却能组合出 15,625 种潜在的神经网络结构。通过预训练并存储这些结构的性能数据，用户无需耗费大量算力重新训练，即可快速查询和验证各种 NAS 算法的表现。此外，项目已升级扩展为 NATS-Bench，提供了更丰富的数据量和更快的 API 响应速度。\n\nNAS-Bench-201 非常适合人工智能研究人员、算法工程师以及高校师生使用。如果你正在开发新的 NAS 算法，或希望复现论文中的基线结果，它能大幅降低实验门槛和时间成本。只需简单的 Python 调用，即可获取详尽的架构信息与评估指标，是探索自动化深度学习模型设计不可或缺的得力助手。","# NAS-BENCH-201 has been extended to [NATS-Bench](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNATS-Bench)\n\n**Since our NAS-BENCH-201 has been extended to NATS-Bench, this repo is deprecated and not maintained. Please use [NATS-Bench](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNATS-Bench), which has 5x more architecture information and faster API than NAS-BENCH-201.**\n\n# [NAS-BENCH-201: Extending the Scope of Reproducible Neural Architecture Search](https:\u002F\u002Fopenreview.net\u002Fforum?id=HJxyZkBKDr)\n\nWe propose an algorithm-agnostic NAS benchmark (NAS-Bench-201) with a fixed search space, which provides a unified benchmark for almost any up-to-date NAS algorithms.\nThe design of our search space is inspired by that used in the most popular cell-based searching algorithms, where a cell is represented as a directed acyclic graph.\nEach edge here is associated with an operation selected from a predefined operation set.\nFor it to be applicable for all NAS algorithms, the search space defined in NAS-Bench-201 includes 4 nodes and 5 associated operation options, which generates 15,625 neural cell candidates in total.\n\nIn this Markdown file, we provide:\n- [How to Use NAS-Bench-201](#how-to-use-nas-bench-201)\n\nFor the following two things, please use [AutoDL-Projects](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects):\n- [Instruction to re-generate NAS-Bench-201](#instruction-to-re-generate-nas-bench-201)\n- [10 NAS algorithms evaluated in our paper](#to-reproduce-10-baseline-nas-algorithms-in-nas-bench-201)\n\nNote: please use `PyTorch >= 1.2.0` and `Python >= 3.6.0`.\n\nYou can simply type `pip install nas-bench-201` to install our api. Please see source codes of `nas-bench-201` module in [this repo](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNAS-Bench-201).\n\n**If you have any questions or issues, please post it at [here](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fissues) or email me.**\n\n### Preparation and Download\n\n[deprecated] The **old** benchmark file of NAS-Bench-201 can be downloaded from [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1SKW0Cu0u8-gb18zDpaAGi0f74UdXeGKs\u002Fview?usp=sharing) or [Baidu-Wangpan (code:6u5d)](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1CiaNH6C12zuZf7q-Ilm09w).\n\n[recommended] The **latest** benchmark file of NAS-Bench-201 (`NAS-Bench-201-v1_1-096897.pth`) can be downloaded from [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F16Y0UwGisiouVRxW-W5hEtbxmcHw_0hF_\u002Fview?usp=sharing). The files for model weight are too large (431G) and I need some time to upload it. Please be patient, thanks for your understanding.\n\nYou can move it to anywhere you want and send its path to our API for initialization.\n- [2020.02.25] APIv1.0\u002FFILEv1.0: [`NAS-Bench-201-v1_0-e61699.pth`](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1SKW0Cu0u8-gb18zDpaAGi0f74UdXeGKs) (2.2G), where `e61699` is the last six digits for this file. It contains all information except for the trained weights of each trial.\n- [2020.02.25] APIv1.0\u002FFILEv1.0: The full data of each architecture can be download from [\nNAS-BENCH-201-4-v1.0-archive.tar](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1X2i-JXaElsnVLuGgM4tP-yNwtsspXgdQ) (about 226GB). This compressed folder has 15625 files containing the the trained weights.\n- [2020.02.25] APIv1.0\u002FFILEv1.0: Checkpoints for 3 runs of each baseline NAS algorithm are provided in [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1eAgLZQAViP3r6dA0_ZOOGG9zPLXhGwXi).\n- [2020.03.09] APIv1.2\u002FFILEv1.0: More robust API with more functions and descriptions\n- [2020.03.16] APIv1.3\u002FFILEv1.1: [`NAS-Bench-201-v1_1-096897.pth`](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16Y0UwGisiouVRxW-W5hEtbxmcHw_0hF_) (4.7G), where `096897` is the last six digits for this file. It contains information of more trials compared to `NAS-Bench-201-v1_0-e61699.pth`, especially all models trained by 12 epochs on all datasets are avaliable.\n- [2020.06.30] APIv2.0: Use abstract class (NASBenchMetaAPI) for APIs of NAS-Bench-x0y.\n- [2020.06.30] FILEv2.0: coming soon!\n\n**We recommend to use `NAS-Bench-201-v1_1-096897.pth`**\n\n\nThe training and evaluation data used in NAS-Bench-201 can be downloaded from [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1L0Lzq8rWpZLPfiQGd6QR8q5xLV88emU7) or [Baidu-Wangpan (code:4fg7)](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1XAzavPKq3zcat1yBA1L2tQ).\nIt is recommended to put these data into `$TORCH_HOME` (`~\u002F.torch\u002F` by default). If you want to generate NAS-Bench-201 or similar NAS datasets or training models by yourself, you need these data.\n\n## How to Use NAS-Bench-201\n\n**More usage can be found in [our test codes](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fblob\u002Fmaster\u002Fexps\u002FNAS-Bench-201\u002Ftest-nas-api.py)**.\n\n1. Creating an API instance from a file:\n```\nfrom nas_201_api import NASBench201API as API\napi = API('$path_to_meta_nas_bench_file')\n# Create an API without the verbose log\napi = API('NAS-Bench-201-v1_1-096897.pth', verbose=False)\n# The default path for benchmark file is '{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-Bench-201-v1_1-096897.pth')\napi = API(None)\n```\n\n2. Show the number of architectures `len(api)` and each architecture `api[i]`:\n```\nnum = len(api)\nfor i, arch_str in enumerate(api):\n  print ('{:5d}\u002F{:5d} : {:}'.format(i, len(api), arch_str))\n```\n\n3. Show the results of all trials for a single architecture:\n```\n# show all information for a specific architecture\napi.show(1)\napi.show(2)\n\n# show the mean loss and accuracy of an architecture\ninfo = api.query_meta_info_by_index(1)  # This is an instance of `ArchResults`\nres_metrics = info.get_metrics('cifar10', 'train') # This is a dict with metric names as keys\ncost_metrics = info.get_comput_costs('cifar100') # This is a dict with metric names as keys, e.g., flops, params, latency\n\n# get the detailed information\nresults = api.query_by_index(1, 'cifar100') # a dict of all trials for 1st net on cifar100, where the key is the seed\nprint ('There are {:} trials for this architecture [{:}] on cifar100'.format(len(results), api[1]))\nfor seed, result in results.items():\n  print ('Latency : {:}'.format(result.get_latency()))\n  print ('Train Info : {:}'.format(result.get_train()))\n  print ('Valid Info : {:}'.format(result.get_eval('x-valid')))\n  print ('Test  Info : {:}'.format(result.get_eval('x-test')))\n  # for the metric after a specific epoch\n  print ('Train Info [10-th epoch] : {:}'.format(result.get_train(10)))\n```\n\n4. Query the index of an architecture by string\n```\nindex = api.query_index_by_arch('|nor_conv_3x3~0|+|nor_conv_3x3~0|avg_pool_3x3~1|+|skip_connect~0|nor_conv_3x3~1|skip_connect~2|')\napi.show(index)\n```\nThis string `|nor_conv_3x3~0|+|nor_conv_3x3~0|avg_pool_3x3~1|+|skip_connect~0|nor_conv_3x3~1|skip_connect~2|` means:\n```\nnode-0: the input tensor\nnode-1: conv-3x3( node-0 )\nnode-2: conv-3x3( node-0 ) + avg-pool-3x3( node-1 )\nnode-3: skip-connect( node-0 ) + conv-3x3( node-1 ) + skip-connect( node-2 )\n```\n\n5. Create the network from api:\n```\nconfig = api.get_net_config(123, 'cifar10') # obtain the network configuration for the 123-th architecture on the CIFAR-10 dataset\nfrom models import get_cell_based_tiny_net # this module is in AutoDL-Projects\u002Flib\u002Fmodels\nnetwork = get_cell_based_tiny_net(config) # create the network from configurration\nprint(network) # show the structure of this architecture\n```\nIf you want to load the trained weights of this created network, you need to use `api.get_net_param(123, ...)` to obtain the weights and then load it to the network.\n\n6. `api.get_more_info(...)` can return the loss \u002F accuracy \u002F time on training \u002F validation \u002F test sets, which is very helpful. For more details, please look at the comments in the get_more_info function.\n\n7. For other usages, please see `lib\u002Fnas_201_api\u002Fapi.py`. We provide some usage information in the comments for the corresponding functions. If what you want is not provided, please feel free to open an issue for discussion, and I am happy to answer any questions regarding NAS-Bench-201.\n\n\n### Detailed Instruction\n\nIn `nas_201_api`, we define three classes: `NASBench201API`, `ArchResults`, `ResultsCount`.\n\n`ResultsCount` maintains all information of a specific trial. One can instantiate ResultsCount and get the info via the following codes (`000157-FULL.pth` saves all information of all trials of 157-th architecture):\n```\nfrom nas_201_api import ResultsCount\nxdata  = torch.load('000157-FULL.pth')\nodata  = xdata['full']['all_results'][('cifar10-valid', 777)]\nresult = ResultsCount.create_from_state_dict( odata )\nprint(result) # print it\nprint(result.get_train())   # print the final training loss\u002Faccuracy\u002F[optional:time-cost-of-a-training-epoch]\nprint(result.get_train(11)) # print the training info of the 11-th epoch\nprint(result.get_eval('x-valid'))     # print the final evaluation info on the validation set\nprint(result.get_eval('x-valid', 11)) # print the info on the validation set of the 11-th epoch\nprint(result.get_latency())           # print the evaluation latency [in batch]\nresult.get_net_param()                # the trained parameters of this trial\narch_config = result.get_config(CellStructure.str2structure) # create the network with params\nnet_config  = dict2config(arch_config, None)\nnetwork    = get_cell_based_tiny_net(net_config)\nnetwork.load_state_dict(result.get_net_param())\n```\n\n`ArchResults` maintains all information of all trials of an architecture. Please see the following usages:\n```\nfrom nas_201_api import ArchResults\nxdata   = torch.load('000157-FULL.pth')\narchRes = ArchResults.create_from_state_dict(xdata['less']) # load trials trained with  12 epochs\narchRes = ArchResults.create_from_state_dict(xdata['full']) # load trials trained with 200 epochs\n\nprint(archRes.arch_idx_str())      # print the index of this architecture \nprint(archRes.get_dataset_names()) # print the supported training data\nprint(archRes.get_compute_costs('cifar10-valid')) # print all computational info when training on cifar10-valid \nprint(archRes.get_metrics('cifar10-valid', 'x-valid', None, False)) # print the average loss\u002Faccuracy\u002Ftime on all trials\nprint(archRes.get_metrics('cifar10-valid', 'x-valid', None,  True)) # print loss\u002Faccuracy\u002Ftime of a randomly selected trial\n```\n\n`NASBench201API` is the topest level api. Please see the following usages:\n```\nfrom nas_201_api import NASBench201API as API\napi = API('NAS-Bench-201-v1_1-096897.pth') # This will load all the information of NAS-Bench-201 except the trained weights\napi = API('{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-Bench-201-v1_1-096897.pth')) # The same as the above line while I usually save NAS-Bench-201-v1_1-096897.pth in ~\u002F.torch\u002F.\napi.show(-1)  # show info of all architectures\napi.reload('{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-BENCH-201-4-v1.0-archive'), 3) # This code will reload the information 3-th architecture with the trained weights\n\nweights = api.get_net_param(3, 'cifar10', None) # Obtaining the weights of all trials for the 3-th architecture on cifar10. It will returns a dict, where the key is the seed and the value is the trained weights.\n```\n\nTo obtain the training and evaluation information (please see the comments [here](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fblob\u002Fmaster\u002Flib\u002Fnas_201_api\u002Fapi_201.py#L142)):\n```\napi.get_more_info(112, 'cifar10', None, hp='200', is_random=True)\n# Query info of last training epoch for 112-th architecture\n# using 200-epoch-hyper-parameter and randomly select a trial.\napi.get_more_info(112, 'ImageNet16-120', None, hp='200', is_random=True)\n```\n\n# Citation\n\nIf you find that NAS-Bench-201 helps your research, please consider citing it:\n```\n@inproceedings{dong2020nasbench201,\n  title     = {NAS-Bench-201: Extending the Scope of Reproducible Neural Architecture Search},\n  author    = {Dong, Xuanyi and Yang, Yi},\n  booktitle = {International Conference on Learning Representations (ICLR)},\n  url       = {https:\u002F\u002Fopenreview.net\u002Fforum?id=HJxyZkBKDr},\n  year      = {2020}\n}\n```\n","# NAS-BENCH-201 已扩展为 [NATS-Bench](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNATS-Bench)\n\n**由于我们的 NAS-BENCH-201 已扩展为 NATS-Bench，本仓库已被弃用且不再维护。请使用 [NATS-Bench](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNATS-Bench)，它包含的架构信息是 NAS-BENCH-201 的 5 倍，API 速度也更快。**\n\n# [NAS-BENCH-201：扩展可复现神经网络架构搜索的范围](https:\u002F\u002Fopenreview.net\u002Fforum?id=HJxyZkBKDr)\n\n我们提出了一种与算法无关的 NAS 基准（NAS-Bench-201），其搜索空间固定，为几乎所有最新的 NAS 算法提供了一个统一的基准。我们的搜索空间设计灵感来源于最流行的基于单元的搜索算法，其中每个单元被表示为一个有向无环图。这里的每条边都与一个从预定义操作集中选择的操作相关联。为了适用于所有 NAS 算法，NAS-Bench-201 定义的搜索空间包含 4 个节点和 5 种相关的操作选项，总共生成 15,625 个神经网络单元候选。\n\n在本 Markdown 文件中，我们提供了：\n- [如何使用 NAS-Bench-201](#how-to-use-nas-bench-201)\n\n对于以下两项，请使用 [AutoDL-Projects](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects)：\n- [重新生成 NAS-Bench-201 的说明](#instruction-to-re-generate-nas-bench-201)\n- [我们论文中评估的 10 种 NAS 算法](#to-reproduce-10-baseline-nas-algorithms-in-nas-bench-201)\n\n注意：请使用 `PyTorch >= 1.2.0` 和 `Python >= 3.6.0`。\n\n您可以简单地输入 `pip install nas-bench-201` 来安装我们的 API。请参阅 [此仓库](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNAS-Bench-201) 中 `nas-bench-201` 模块的源代码。\n\n**如果您有任何问题或遇到任何困难，请在 [这里](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fissues) 提出，或直接给我发送邮件。**\n\n### 准备与下载\n\n[已弃用] NAS-Bench-201 的 **旧版** 基准文件可以从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1SKW0Cu0u8-gb18zDpaAGi0f74UdXeGKs\u002Fview?usp=sharing) 或 [百度网盘（提取码：6u5d）](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1CiaNH6C12zuZf7q-Ilm09w) 下载。\n\n[推荐] NAS-Bench-201 的 **最新版** 基准文件（`NAS-Bench-201-v1_1-096897.pth`）可以从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F16Y0UwGisiouVRxW-W5hEtbxmcHw_0hF_\u002Fview?usp=sharing) 下载。模型权重文件体积较大（431GB），上传需要一些时间，请耐心等待，感谢您的理解。\n\n您可以将其移动到任何您希望的位置，并将路径传递给我们的 API 进行初始化。\n- [2020.02.25] APIv1.0\u002FFILEv1.0：[`NAS-Bench-201-v1_0-e61699.pth`](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1SKW0Cu0u8-gb18zDpaAGi0f74UdXeGKs)（2.2GB），其中 `e61699` 是该文件的后六位数字。它包含了除每次试验训练权重之外的所有信息。\n- [2020.02.25] APIv1.0\u002FFILEv1.0：每个架构的完整数据可以从 [\nNAS-BENCH-201-4-v1.0-archive.tar](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1X2i-JXaElsnVLuGgM4tP-yNwtsspXgdQ) 下载（约 226GB）。这个压缩文件夹包含 15625 个文件，内含训练好的权重。\n- [2020.02.25] APIv1.0\u002FFILEv1.0：每个基线 NAS 算法的 3 次运行检查点已在 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1eAgLZQAViP3r6dA0_ZOOGG9zPLXhGwXi) 上提供。\n- [2020.03.09] APIv1.2\u002FFILEv1.0：功能更强大、描述更丰富的稳健 API\n- [2020.03.16] APIv1.3\u002FFILEv1.1：[`NAS-Bench-201-v1_1-096897.pth`](https:\u002F\u002Fdrive.google.com\u002Fopen?id=16Y0UwGisiouVRxW-W5hEtbxmcHw_0hF_)（4.7GB），其中 `096897` 是该文件的后六位数字。相比 `NAS-Bench-201-v1_0-e61699.pth`，它包含了更多试验的信息，尤其是所有模型在所有数据集上训练了 12 个 epoch 的结果都可以获取。\n- [2020.06.30] APIv2.0：使用抽象类（NASBenchMetaAPI）来管理 NAS-Bench-x0y 的 API。\n- [2020.06.30] FILEv2.0：即将推出！\n\n**我们建议使用 `NAS-Bench-201-v1_1-096897.pth`**\n\n\nNAS-Bench-201 中使用的训练和评估数据可以从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1L0Lzq8rWpZLPfiQGd6QR8q5xLV88emU7) 或 [百度网盘（提取码：4fg7）](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1XAzavPKq3zcat1yBA1L2tQ) 下载。建议将这些数据放入 `$TORCH_HOME` 目录下（默认为 `~\u002F.torch\u002F`）。如果您想自行生成 NAS-Bench-201 或类似的 NAS 数据集及训练模型，就需要这些数据。\n\n## 如何使用 NAS-Bench-201\n\n**更多用法请参阅我们的测试代码** [https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fblob\u002Fmaster\u002Fexps\u002FNAS-Bench-201\u002Ftest-nas-api.py](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fblob\u002Fmaster\u002Fexps\u002FNAS-Bench-201\u002Ftest-nas-api.py)。\n\n1. 从文件创建 API 实例：\n```\nfrom nas_201_api import NASBench201API as API\napi = API('$path_to_meta_nas_bench_file')\n# 创建不显示详细日志的 API\napi = API('NAS-Bench-201-v1_1-096897.pth', verbose=False)\n# 基准文件的默认路径为 '{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-Bench-201-v1_1-096897.pth')\napi = API(None)\n```\n\n2. 显示架构数量 `len(api)` 和每个架构 `api[i]`：\n```\nnum = len(api)\nfor i, arch_str in enumerate(api):\n  print ('{:5d}\u002F{:5d} : {:}'.format(i, len(api), arch_str))\n```\n\n3. 显示单个架构的所有试验结果：\n```\n# 显示特定架构的所有信息\napi.show(1)\napi.show(2)\n\n# 显示某个架构的平均损失和准确率\ninfo = api.query_meta_info_by_index(1)  # 这是一个 `ArchResults` 实例\nres_metrics = info.get_metrics('cifar10', 'train') # 这是一个以指标名称为键的字典\ncost_metrics = info.get_comput_costs('cifar100') # 这是一个以指标名称为键的字典，例如 FLOPs、参数量、延迟等\n\n# 获取详细信息\nresults = api.query_by_index(1, 'cifar100') # 一个字典，包含第1个网络在cifar100上的所有试验结果，键为种子\nprint ('该架构在cifar100上有{:}个试验'.format(len(results), api[1]))\nfor seed, result in results.items():\n  print ('延迟：{:}'.format(result.get_latency()))\n  print ('训练信息：{:}'.format(result.get_train()))\n  print ('验证信息：{:}'.format(result.get_eval('x-valid')))\n  print ('测试信息：{:}'.format(result.get_eval('x-test')))\n  # 指定某个epoch后的指标\n  print ('训练信息[第10个epoch]：{:}'.format(result.get_train(10)))\n```\n\n4. 通过字符串查询架构的索引\n```\nindex = api.query_index_by_arch('|nor_conv_3x3~0|+|nor_conv_3x3~0|avg_pool_3x3~1|+|skip_connect~0|nor_conv_3x3~1|skip_connect~2|')\napi.show(index)\n```\n这个字符串 `|nor_conv_3x3~0|+|nor_conv_3x3~0|avg_pool_3x3~1|+|skip_connect~0|nor_conv_3x3~1|skip_connect~2|` 表示：\n```\n节点-0：输入张量\n节点-1：卷积-3x3（节点-0）\n节点-2：卷积-3x3（节点-0） + 平均池化-3x3（节点-1）\n节点-3：跳跃连接（节点-0） + 卷积-3x3（节点-1） + 跳跃连接（节点-2）\n```\n\n5. 从api中创建网络：\n```\nconfig = api.get_net_config(123, 'cifar10') # 获取CIFAR-10数据集上第123个架构的网络配置\nfrom models import get_cell_based_tiny_net # 此模块位于AutoDL-Projects\u002Flib\u002Fmodels\nnetwork = get_cell_based_tiny_net(config) # 根据配置创建网络\nprint(network) # 打印该架构的结构\n```\n如果想要加载该网络的训练权重，需要使用 `api.get_net_param(123, ...)` 获取权重，然后将其加载到网络中。\n\n6. `api.get_more_info(...)` 可以返回训练、验证和测试集上的损失\u002F准确率\u002F时间等信息，非常有用。更多细节请查看 `get_more_info` 函数中的注释。\n\n7. 其他用法请参阅 `lib\u002Fnas_201_api\u002Fapi.py`。我们在相应函数的注释中提供了一些使用说明。如果您需要的功能未被提供，请随时提交问题进行讨论，我将很乐意解答关于NAS-Bench-201的相关问题。\n\n\n### 详细说明\n\n在 `nas_201_api` 中，我们定义了三个类：`NASBench201API`、`ArchResults`、`ResultsCount`。\n\n`ResultsCount` 维护单个试验的所有信息。可以通过以下代码实例化 `ResultsCount` 并获取信息（`000157-FULL.pth` 保存了第157个架构所有试验的信息）：\n```\nfrom nas_201_api import ResultsCount\nxdata  = torch.load('000157-FULL.pth')\nodata  = xdata['full']['all_results'][('cifar10-valid', 777)]\nresult = ResultsCount.create_from_state_dict( odata )\nprint(result) # 打印结果\nprint(result.get_train())   # 打印最终的训练损失\u002F准确率\u002F[可选：每个训练 epoch 的耗时]\nprint(result.get_train(11)) # 打印第11个 epoch 的训练信息\nprint(result.get_eval('x-valid'))     # 打印验证集上的最终评估信息\nprint(result.get_eval('x-valid', 11)) # 打印第11个 epoch 的验证集信息\nprint(result.get_latency())           # 打印评估延迟 [以批次为单位]\nresult.get_net_param()                # 该试验的训练参数\narch_config = result.get_config(CellStructure.str2structure) # 使用参数创建网络\nnet_config  = dict2config(arch_config, None)\nnetwork    = get_cell_based_tiny_net(net_config)\nnetwork.load_state_dict(result.get_net_param())\n```\n\n`ArchResults` 维护一个架构所有试验的信息。请参阅以下用法：\n```\nfrom nas_201_api import ArchResults\nxdata   = torch.load('000157-FULL.pth')\narchRes = ArchResults.create_from_state_dict(xdata['less']) # 加载使用12个epoch训练的试验\narchRes = ArchResults.create_from_state_dict(xdata['full']) # 加载使用200个epoch训练的试验\n\nprint(archRes.arch_idx_str())      # 打印该架构的索引\nprint(archRes.get_dataset_names()) # 打印支持的训练数据\nprint(archRes.get_compute_costs('cifar10-valid')) # 打印在cifar10-valid上训练时的所有计算信息\nprint(archRes.get_metrics('cifar10-valid', 'x-valid', None, False)) # 打印所有试验的平均损失\u002F准确率\u002F时间\nprint(archRes.get_metrics('cifar10-valid', 'x-valid', None,  True)) # 打印随机选择的一个试验的损失\u002F准确率\u002F时间\n```\n\n`NASBench201API` 是最顶层的API。请参阅以下用法：\n```\nfrom nas_201_api import NASBench201API as API\napi = API('NAS-Bench-201-v1_1-096897.pth') # 这将加载NAS-Bench-201的所有信息，但不包括训练权重\napi = API('{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-Bench-201-v1_1-096897.pth')) # 与上一行相同，但我通常会将NAS-Bench-201-v1_1-096897.pth保存在~\u002F.torch\u002F目录下。\napi.show(-1)  # 显示所有架构的信息\napi.reload('{:}\u002F{:}'.format(os.environ['TORCH_HOME'], 'NAS-BENCH-201-4-v1.0-archive'), 3) # 此代码将重新加载第3个架构的信息，并附带训练权重\n\nweights = api.get_net_param(3, 'cifar10', None) # 获取第3个架构在cifar10上所有试验的权重。它将返回一个字典，其中键为种子，值为训练权重。\n```\n\n获取训练和评估信息（请参阅此处的注释 [https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FAutoDL-Projects\u002Fblob\u002Fmaster\u002Flib\u002Fnas_201_api\u002Fapi_201.py#L142]）：\n```\napi.get_more_info(112, 'cifar10', None, hp='200', is_random=True)\n# 查询第112个架构最后一次训练的信息\n# 使用200个epoch的超参数，并随机选择一个试验。\napi.get_more_info(112, 'ImageNet16-120', None, hp='200', is_random=True)\n```\n\n# 引用\n\n如果您发现NAS-Bench-201对您的研究有所帮助，请考虑引用它：\n```\n@inproceedings{dong2020nasbench201,\n  title     = {NAS-Bench-201: 扩展可复现神经架构搜索的范围},\n  author    = {Dong, Xuanyi 和 Yang, Yi},\n  booktitle = {国际表征学习会议（ICLR）},\n  url       = {https:\u002F\u002Fopenreview.net\u002Fforum?id=HJxyZkBKDr},\n  year      = {2020}\n}\n```","# NAS-Bench-201 快速上手指南\n\n> **重要提示**：NAS-Bench-201 项目已扩展并升级为 [NATS-Bench](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNATS-Bench)。原仓库已不再维护。NATS-Bench 提供了多 5 倍的架构信息和更快的 API 速度。**强烈建议新用户使用 NATS-Bench**，以下指南仅针对仍需使用 NAS-Bench-201 的场景。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下最低要求：\n\n*   **Python**: >= 3.6.0\n*   **PyTorch**: >= 1.2.0\n*   **操作系统**: Linux \u002F macOS \u002F Windows (推荐 Linux)\n\n## 安装步骤\n\n### 1. 安装 Python 包\n\n直接使用 pip 安装官方 API 包：\n\n```bash\npip install nas-bench-201\n```\n\n如需从源码安装或查看最新代码，可访问 [GitHub 源码仓库](https:\u002F\u002Fgithub.com\u002FD-X-Y\u002FNAS-Bench-201)。\n\n### 2. 下载基准数据文件\n\nAPI 需要加载预生成的基准数据文件才能运行。推荐使用最新版本 `NAS-Bench-201-v1_1-096897.pth` (约 4.7GB)，它包含了更多试验信息（包括所有数据集上训练 12 个 epoch 的模型）。\n\n**下载方式：**\n\n*   **Google Drive (推荐)**: [点击下载 NAS-Bench-201-v1_1-096897.pth](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F16Y0UwGisiouVRxW-W5hEtbxmcHw_0hF_\u002Fview?usp=sharing)\n*   **百度网盘 (国内加速)**: [点击下载](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1CiaNH6C12zuZf7q-Ilm09w) (提取码：`6u5d`, 注意此为旧版链接，若需最新版请尝试通过 Google Drive 下载或使用工具转换)\n    *   *注：原文未提供新版文件的直接百度网盘链接，如下载困难可使用第三方工具辅助下载 Google Drive 文件。*\n\n下载完成后，将文件放置在任意目录，或默认放置于 `$TORCH_HOME` (通常为 `~\u002F.torch\u002F`) 目录下。\n\n## 基本使用\n\n以下是使用 NAS-Bench-201 API 的核心代码示例。\n\n### 1. 初始化 API\n\n加载本地数据文件创建 API 实例。如果文件位于默认路径 `~\u002F.torch\u002FNAS-Bench-201-v1_1-096897.pth`，可直接传入 `None`。\n\n```python\nfrom nas_201_api import NASBench201API as API\n\n# 方式 A: 指定文件路径\napi = API('\u002Fpath\u002Fto\u002FNAS-Bench-201-v1_1-096897.pth')\n\n# 方式 B: 使用默认路径 (文件需位于 ~\u002F.torch\u002F)\n# api = API(None)\n\n# 方式 C: 关闭详细日志\n# api = API('NAS-Bench-201-v1_1-096897.pth', verbose=False)\n```\n\n### 2. 浏览架构空间\n\n查看搜索空间中架构的总数及具体结构字符串。\n\n```python\n# 获取架构总数 (应为 15625)\nnum = len(api)\nprint(f\"Total architectures: {num}\")\n\n# 打印前 5 个架构的结构字符串\nfor i, arch_str in enumerate(api):\n    if i >= 5:\n        break\n    print('{:5d}\u002F{:5d} : {:}'.format(i, len(api), arch_str))\n```\n\n### 3. 查询特定架构的性能\n\n获取某个架构在特定数据集上的评估指标（如准确率、损失、计算成本等）。\n\n```python\n# 查询索引为 1 的架构在 CIFAR-100 上的详细结果\n# 返回一个字典，key 为随机种子 (seed)，value 为该次试验的结果对象\nresults = api.query_by_index(1, 'cifar100')\n\nprint('There are {:} trials for this architecture on cifar100'.format(len(results)))\n\nfor seed, result in results.items():\n    # 获取延迟\n    print('Latency : {:}'.format(result.get_latency()))\n    # 获取训练集最终信息 (loss, accuracy)\n    print('Train Info : {:}'.format(result.get_train()))\n    # 获取验证集最终信息\n    print('Valid Info : {:}'.format(result.get_eval('x-valid')))\n    # 获取测试集最终信息\n    print('Test  Info : {:}'.format(result.get_eval('x-test')))\n    \n    # 获取第 10 个 epoch 的训练信息\n    print('Train Info [10-th epoch] : {:}'.format(result.get_train(10)))\n```\n\n### 4. 通过结构字符串反查索引\n\n如果你有一个具体的架构结构字符串，可以查询其在 Benchmark 中的索引。\n\n```python\narch_str = '|nor_conv_3x3~0|+|nor_conv_3x3~0|avg_pool_3x3~1|+|skip_connect~0|nor_conv_3x3~1|skip_connect~2|'\nindex = api.query_index_by_arch(arch_str)\n\nprint(f\"Architecture index: {index}\")\napi.show(index) # 显示该架构的详细信息\n```\n\n### 5. 构建网络模型\n\n根据 API 中的配置实例化真实的 PyTorch 网络模型（需配合 `AutoDL-Projects` 中的模型定义）。\n\n```python\n# 获取第 123 个架构在 CIFAR-10 上的网络配置\nconfig = api.get_net_config(123, 'cifar10')\n\n# 导入模型构建函数 (需先安装或克隆 AutoDL-Projects)\n# from models import get_cell_based_tiny_net \n\n# 实例化网络\n# network = get_cell_based_tiny_net(config)\n# print(network)\n\n# 若需加载训练好的权重：\n# weights = api.get_net_param(123, 'cifar10', None)\n# network.load_state_dict(weights[seed]) \n```\n\n### 6. 快速获取综合信息\n\n使用 `get_more_info` 一键获取指定架构在特定超参数设置下的损失、准确率和耗时等信息。\n\n```python\n# 查询第 112 号架构，在 CIFAR-10 上，使用 200 epoch 超参数，随机选取一次试验的结果\ninfo = api.get_more_info(112, 'cifar10', None, hp='200', is_random=True)\nprint(info)\n```","某高校实验室的研究团队正在开发一种针对医疗影像诊断的新型神经网络架构搜索（NAS）算法，急需在标准数据集上验证其性能并与现有主流方法进行公平对比。\n\n### 没有 NAS-Bench-201 时\n- **复现成本极高**：为了对比实验，研究人员必须重新搭建环境并逐一复现十几种基准算法，仅配置环境和调试代码就耗费数周时间。\n- **评估周期漫长**：每测试一个新的架构候选，都需要从头开始训练和验证，单次实验耗时数小时，导致整个搜索过程的验证阶段长达数天甚至数周。\n- **结果难以对齐**：由于不同研究使用的搜索空间、数据增强策略或训练超参数不一致，导致实验结果缺乏统一标准，无法判断算法优劣是源于设计改进还是实验设置差异。\n- **资源浪费严重**：大量 GPU 算力被重复消耗在相同的基准模型训练上，而非用于核心算法的创新探索。\n\n### 使用 NAS-Bench-201 后\n- **即插即用对比**：团队直接调用 NAS-Bench-201 提供的统一 API 和预定义搜索空间，无需复现基准算法，即可在几分钟内加载所有候选架构的历史性能数据。\n- **秒级性能查询**：不再需要重新训练模型，通过查询预计算好的包含 15,625 个神经单元的性能数据库，瞬间获取任意架构在 CIFAR-10 等数据集上的准确率。\n- **公平性得到保障**：基于固定的搜索空间和统一的评估协议，团队能确保新算法与已有成果的对比完全公平，消除了因实验设置不同带来的干扰变量。\n- **聚焦核心创新**：节省下来的算力和时间被全部投入到新搜索策略的逻辑优化中，将原本需要一个月的验证周期缩短至两天内完成。\n\nNAS-Bench-201 通过提供标准化的搜索空间和预计算的完备性能库，彻底消除了神经架构搜索领域的重复造轮子现象，让研究者能专注于算法本身的创新。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FD-X-Y_NAS-Bench-201_9861a62d.png","D-X-Y","Barry (Xuanyi) Dong","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FD-X-Y_61eeccbb.jpg","Member of Technical Staff@OpenAI","OpenAI ← Augment ← Google DeepMind","Mountain View, CA, USA",null,"https:\u002F\u002Fd-x-y.github.io\u002F","https:\u002F\u002Fgithub.com\u002FD-X-Y",[82],{"name":83,"color":84,"percentage":85},"Python","#3572A5",100,643,116,"2026-04-12T14:20:50","MIT","未说明","未说明（但涉及神经网络训练权重加载与推理，通常建议配备 NVIDIA GPU）","未说明（注意：完整权重文件压缩包约 226GB，解压后更大；基准文件约 4.7GB，加载需充足内存）",{"notes":94,"python":95,"dependencies":96},"该仓库已弃用，官方推荐使用 NATS-Bench。基准数据文件较大（最新推荐版本约 4.7GB，完整权重存档约 226GB），需手动下载并配置路径。默认数据存放路径为 $TORCH_HOME (~\u002F.torch\u002F)。若需复现论文中的算法或生成数据集，需额外下载训练评估数据。",">=3.6.0",[97,98],"torch>=1.2.0","nas-bench-201",[14,16],[101,102,103,104,98],"nas","automl","dataset","pytorch","2026-03-27T02:49:30.150509","2026-04-14T00:11:56.500078",[],[]]