[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-snap-stanford--GraphGym":3,"tool-snap-stanford--GraphGym":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 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":10,"env_os":90,"env_gpu":91,"env_ram":92,"env_deps":93,"category_tags":103,"github_topics":75,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":105,"updated_at":106,"faqs":107,"releases":136},7823,"snap-stanford\u002FGraphGym","GraphGym","Platform for designing and evaluating Graph Neural Networks (GNN)","GraphGym 是一个专为图神经网络（GNN）设计与评估打造的开源平台，源自斯坦福大学在 NeurIPS 2020 发表的亮点论文。它旨在解决 GNN 领域模型种类繁多、最佳架构难以确定以及实验复现困难等核心痛点。\n\n对于刚入门的学习者，GraphGym 提供了标准化的实现流程，帮助快速理解 GNN 工作原理；对于希望将 GNN 应用于具体业务的开发者，它能并行启动数千次实验，自动筛选出最适合特定任务的最佳模型设计；对于科研人员，平台支持灵活注册自定义模块（如新的网络层或损失函数），便于公平地验证新提出的算法是否优于现有方案。\n\n其技术亮点在于高度模块化的流水线设计，涵盖数据加载、模型构建、任务定义到性能评估的全环节。所有实验均可通过配置文件完整描述，确保了极高的可复现性。此外，GraphGym 具备强大的可扩展性，能自动管理大规模并行实验并生成分析报告。无论是初学者、领域专家还是资深研究员，都能利用 GraphGym 高效探索图神经网络的无限可能。","# GraphGym\nGraphGym is a platform for designing and evaluating Graph Neural Networks (GNN).\nGraphGym is proposed in *[Design Space for Graph Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)*, \nJiaxuan You, Rex Ying, Jure Leskovec, **NeurIPS 2020 Spotlight**.\n\nPlease also refer to [PyG](https:\u002F\u002Fwww.pyg.org) for a tightly integrated version of GraphGym and PyG.\n\n### Highlights\n**1. Highly modularized pipeline for GNN**\n- **Data:** Data loading, data splitting\n- **Model:** Modularized GNN implementation\n- **Tasks:** Node \u002F edge \u002F graph level GNN tasks\n- **Evaluation:** Accuracy, ROC AUC, ...\n\n**2. Reproducible experiment configuration** \n- Each experiment is *fully described by a configuration file*\n\n**3. Scalable experiment management**\n- Easily launch *thousands of GNN experiments in parallel* \n- *Auto-generate* experiment analyses and figures across random seeds and experiments.\n\n**4. Flexible user customization**\n- Easily *register your own modules* \n  in [`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib), \n  such as data loaders, GNN layers, loss functions, etc. \n\n### News\n- GraphGym 0.3.0 has been released. Now you may install stable version of GraphGym via `pip install graphgym`.\n- GraphGym 0.2.0 has been released. Now GraphGym supports Pytorch Geometric backend, in addition to the default DeepSNAP backend. \n  You may try it out in [`run_single_pyg.sh`](run\u002Frun_single_pyg.sh).\n```bash\ncd run\nbash run_single_pyg.sh \n```\n\n### Example use cases\n- *[Design Space for Graph Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)*, Jiaxuan You, Rex Ying, Jure Leskovec, **NeurIPS 2020 Spotlight**.\n- *[Identity-aware Graph Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320)*, Jiaxuan You, Jonathan Gomes-Selman, Rex Ying, Jure Leskovec, **AAAI 2021**.\n- *[Relational Multi-Task Learning: Modeling Relations between Data and Tasks](https:\u002F\u002Fopenreview.net\u002Fpdf?id=8Py-W8lSUgy)*, Kaidi Cao&ast;, Jiaxuan You&ast;, Jure Leskovec, **ICLR 2022 Spotlight**.\n- *[ROLAND: Graph Learning Framework for Dynamic Graphs](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.07239)*, Jiaxuan You, Tianyu Du, Jure Leskovec, **KDD 2022**.\n\n\n\n## Why GraphGym?\n**TL;DR:** GraphGym is great for GNN beginners, domain experts and GNN researchers.\n\n**Scenario 1:** You are a beginner to GNN, who wants to understand how GNN works.\n\nYou probably have read many exciting papers on GNN, and try to write your own GNN implementation.\nUsing existing packages for GNN, you still have to code up the essential pipeline on your own.\nGraphGym is a perfect place for your to start learning *standardized GNN implementation and evaluation*.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_70deeef332a6.png\" width=\"400px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 1: Modularized GNN implementation.\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**Scenario 2:** You want to apply GNN to your exciting applications.\n\nYou probably know that there are hundreds of possible GNN models, and selecting the best model is notoriously hard.\nEven worse, we have shown in our [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843) that the best GNN designs for different tasks differ drastically.\nGraphGym provides a *simple interface to try out thousands of GNNs in parallel* and understand the best designs for your specific task.\nGraphGym also recommends a \"go-to\" GNN design space, after investigating 10 million GNN model-task combinations.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_035235a22ed9.png\" width=\"1000px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 2: A guideline for desirable GNN design choices.\u003C\u002Fb> \u003Cbr>(Sampling from 10 million GNN model-task combinations.)\n\u003C\u002Fdiv>\n\n\n\u003Cbr>\n\n\n**Scenario 3:** You are a GNN researcher, who wants to innovate GNN models \u002F propose new GNN tasks.\n\nSay you have proposed a new GNN layer `ExampleConv`.\nGraphGym can help you convincingly argue that `ExampleConv` is better than say `GCNConv`:\nwhen randomly sample from 10 million possible model-task combinations, how often `ExampleConv` will outperform `GCNConv`, \nwhen everything else is fixed (including the computational cost). \nMoreover, GraphGym can help you easily do hyper-parameter search, and *visualize* what design choices are better.\nIn sum, GraphGym can greatly facilitate your GNN research.\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_0a5af205263f.png\" width=\"1000px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 3: Evaluation of a given GNN design dimension\u003C\u002Fb> (BatchNorm here).\n\u003C\u002Fdiv>\n\n\n\u003Cbr>\n\n## Installation\n\n**Requirements**\n\n- CPU or NVIDIA GPU, Linux, Python3\n- PyTorch, various Python packages; Instructions for installing these dependencies are found below\n\n\n**1. Python environment (Optional):**\nWe recommend using Conda package manager\n\n```bash\nconda create -n graphgym python=3.7\nsource activate graphgym\n```\n\n**2. Pytorch:**\nInstall [PyTorch](https:\u002F\u002Fpytorch.org\u002F). \nWe have verified GraphGym under PyTorch 1.8.0, and GraphGym should work with PyTorch 1.4.0+. For example:\n```bash\n# CUDA versions: cpu, cu92, cu101, cu102, cu101, cu111\npip install torch==1.8.0+cu101 -f https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Ftorch_stable.html\n```\n\n**3. Pytorch Geometric:**\nInstall [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002Fnotes\u002Finstallation.html), \nfollow their instructions. For example:\n```bash\n# CUDA versions: cpu, cu92, cu101, cu102, cu101, cu111\n# TORCH versions: 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.8.0\nCUDA=cu101\nTORCH=1.8.0\npip install torch-scatter -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-sparse -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-cluster -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-spline-conv -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-geometric\n```\n\n**4. GraphGym and other dependencies:**\n\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\ncd GraphGym\npip install -r requirements.txt\npip install -e .  # From latest verion\npip install graphgym # (Optional) From pypi stable version\n```\n\n\n**5. Test the installation**\n\n**Run a single experiment.** \nRun a test GNN experiment using GraphGym [`run_single.sh`](run\u002Frun_single.sh). \nConfigurations are specified in [`example.yaml`](run\u002Fconfigs\u002Fexample.yaml). \nThe experiment is about node classification on Cora dataset (random 80\u002F20 train\u002Fval split).\n```bash\ncd run\nbash run_single.sh # run a single experiment\n```\n\n**Run a batch of experiments.**\nRun a batch of GNN experiments using GraphGym [`run_batch.sh`](run\u002Frun_batch.sh). \nConfigurations are specified specified in \n[`example.yaml`](run\u002Fconfigs\u002Fexample.yaml) (controls the basic architecture) \nand [`example.txt`](run\u002Fgrids\u002Fexample.txt) (controls how to do grid search). \nThe experiment examines 96 models in the recommended GNN design space, on 2 graph classification datasets.\nEach experiment is repeated 3 times, and we set that 8 jobs can be concurrently run.\nDepending on your infrastructure, finishing all the experiments may take a long time;\nyou can quit the experiment by `Ctrl-C` (GraphGym will properly kill all the processes).\n```bash\ncd run\nbash run_batch.sh # run a batch of experiments \n```\n\n**(Optional) Run GraphGym with CPU backend.**\nGraphGym supports cpu backend as well -- you only need to add one line `device: cpu` to the `.yaml` file. Here we provide an example. \n\n```bash\ncd run\nbash run_single_cpu.sh # run a single experiment using CPU backend\n```\n\n**(Optional) Run GraphGym with PyG backend.**\nRun GraphGym with Pytorch Geometric (PyG) backend\n[`run_single_pyg.sh`](run\u002Frun_single_pyg.sh) and \n[`run_batch_pyg.sh`](run\u002Frun_batch_pyg.sh),\ninstead of the default DeepSNAP backend.\nThe PyG backend follows the native PyG implementation, and is slightly more efficient than the DeepSNAP backend.\nCurrently the PyG backend only supports user-provided dataset splits, such as PyG native datasets or OGB datasets.\n```bash\ncd run\nbash run_single_pyg.sh # run a single experiment using PyG backend\nbash run_batch_pyg.sh # run a batch of experiments using PyG backend \n```\n\n\n\n\n\n\n## GraphGym In-depth Usage\n\n### 1 Run a single GNN experiment\nA full example is specified in [`run\u002Frun_single.sh`](run\u002Frun_single.sh).\n\n**1.1 Specify a configuration file.**\nIn GraphGym, an experiment is fully specified by a `.yaml` file.\nUnspecified configurations in the `.yaml` file will be populated by the default values in \n[`graphgym\u002Fconfig.py`](graphgym\u002Fconfig.py).\nFor example, in [`run\u002Fconfigs\u002Fexample.yaml`](run\u002Fconfigs\u002Fexample.yaml), \nthere are configurations on dataset, training, model, GNN, etc.\nConcrete description for each configuration is described in \n[`graphgym\u002Fconfig.py`](graphgym\u002Fconfig.py).\n\n**1.2 Launch an experiment.**\nFor example, in [`run\u002Frun_single.sh`](run\u002Frun_single.sh):\n```bash\npython main.py --cfg configs\u002Fexample.yaml --repeat 3\n```\nYou can specify the number of different random seeds to repeat via `--repeat`.\n\n**1.3 Understand the results.**\nExperimental results will be automatically saved in directory `run\u002Fresults\u002F${CONFIG_NAME}\u002F`; \nin the example above, it is `run\u002Fresults\u002Fexample\u002F`.\nResults for different random seeds will be saved in different subdirectories, such as `run\u002Fresults\u002Fexample\u002F2`.\nThe aggregated results over all the random seeds are *automatically* generated into `run\u002Fresults\u002Fexample\u002Fagg`,\nincluding the mean and standard deviation `_std` for each metric.\nTrain\u002Fval\u002Ftest results are further saved into subdirectories, such as `run\u002Fresults\u002Fexample\u002Fagg\u002Fval`; here, \n`stats.json` stores the results after each epoch aggregated across random seeds, \n`best.json` stores the results at *the epoch with the highest validation accuracy*.\n\n### 2 Run a batch of GNN experiments\nA full example is specified in [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh).\n\n**2.1 Specify a base file.**\nGraphGym supports running a batch of experiments.\nTo start, a user needs to select a base architecture `--config`.\nThe batch of experiments will be created by perturbing certain configurations of the base architecture.\n\n**2.2 (Optional) Specify a base file for computational budget.**\nAdditionally, GraphGym allows a user to select a base architecture to *control the computational budget* for the grid search, `--config_budget`.\nThe computational budget is currently measured by the number of trainable parameters; the control is achieved by auto-adjust\nthe hidden dimension size for GNN.\nIf no `--config_budget` is provided, GraphGym will not control the computational budget.\n\n**2.3 Specify a grid file.**\nA grid file describes how to perturb the base file, in order to generate the batch of the experiments.\nFor example, the base file could specify an experiment of 3-layer GCN for Cora node classification.\nThen, the grid file specifies how to perturb the experiment along different dimension, such as number of layers,\nmodel architecture, dataset, level of task, etc.\n\n\n**2.4 Generate config files for the batch of experiments,** based on the information specified above.\nFor example, in [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh):\n```bash\npython configs_gen.py --config configs\u002F${DIR}\u002F${CONFIG}.yaml \\\n  --config_budget configs\u002F${DIR}\u002F${CONFIG}.yaml \\\n  --grid grids\u002F${DIR}\u002F${GRID}.txt \\\n  --out_dir configs\n```\n\n**2.5 Launch the batch of experiments.**\nFor example, in [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh):\n```bash\nbash parallel.sh configs\u002F${CONFIG}_grid_${GRID} $REPEAT $MAX_JOBS\n```\nEach experiment will be repeated for `$REPEAT` times. \nWe implemented a queue system to sequentially launch all the jobs, with `$MAX_JOBS` concurrent jobs running at the same time.\nIn practice, our system works great when handling thousands of jobs.\n\n**2.6 Understand the results.**\nExperimental results will be automatically saved in directory `run\u002Fresults\u002F${CONFIG_NAME}_grid_${GRID_NAME}\u002F`; \nin the example above, it is `run\u002Fresults\u002Fexample_grid_example\u002F`.\nAfter running each experiment, GraphGym additionally automatically averages across different models, saved in\n`run\u002Fresults\u002Fexample_grid_example\u002Fagg`. \nThere, `val.csv` represents validation accuracy for each model configuration at the *final* epoch; \n`val_best.csv` represents the results at the epoch with the highest average validation error;\n`val_best_epoch.csv` represents the results at the epoch with the highest validation error, averaged over different random seeds.\nWhen test set split is provided, `test.csv` represents test accuracy for each model configuration at the *final* epoch; \n`test_best.csv` represents the test set results at the epoch with the highest average validation error;\n`test_best_epoch.csv` represents the test set results at the epoch with the highest validation error, averaged over different random seeds.\n\n\n\n\n\n### 3 Analyze the results\nWe provides a handy tool to automatically provide an overview of a batch of experiments in\n[`analysis\u002Fexample.ipynb`](analysis\u002Fexample.ipynb).\n```bash\ncd analysis\njupyter notebook\nexample.ipynb   # automatically provide an overview of a batch of experiments\n```\n\n\n\n### 4 User customization\nA highlight of GraphGym is that it allows users to easily register their customized modules.\nThe supported customized modules are provided in directory \n[`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib), including:\n- Activation [`graphgym\u002Fcontrib\u002Fact\u002F`](graphgym\u002Fcontrib\u002Fact), \n- Customized configurations [`graphgym\u002Fcontrib\u002Fconfig\u002F`](graphgym\u002Fcontrib\u002Fconfig), \n- Feature augmentation [`graphgym\u002Fcontrib\u002Ffeature_augment\u002F`](graphgym\u002Fcontrib\u002Ffeature_augment), \n- Feature encoder [`graphgym\u002Fcontrib\u002Ffeature_encoder\u002F`](graphgym\u002Fcontrib\u002Ffeature_encoder),\n- GNN head [`graphgym\u002Fcontrib\u002Fhead\u002F`](graphgym\u002Fcontrib\u002Fhead), \n- GNN layer [`graphgym\u002Fcontrib\u002Flayer\u002F`](graphgym\u002Fcontrib\u002Flayer), \n- Data loader [`graphgym\u002Fcontrib\u002Floader\u002F`](graphgym\u002Fcontrib\u002Floader),\n- Loss function [`graphgym\u002Fcontrib\u002Floss\u002F`](graphgym\u002Fcontrib\u002Floss), \n- GNN network architecture [`graphgym\u002Fcontrib\u002Fnetwork\u002F`](graphgym\u002Fcontrib\u002Fnetwork), \n- Optimizer [`graphgym\u002Fcontrib\u002Foptimizer\u002F`](graphgym\u002Fcontrib\u002Foptimizer),\n- GNN global pooling (graph classification only) \n  [`graphgym\u002Fcontrib\u002Fpooling\u002F`](graphgym\u002Fcontrib\u002Fpooling), \n- GNN stage [`graphgym\u002Fcontrib\u002Fstage\u002F`](graphgym\u002Fcontrib\u002Fstage),\n- GNN training pipeline [`graphgym\u002Fcontrib\u002Ftrain\u002F`](graphgym\u002Fcontrib\u002Ftrain), \n- Data transformations [`graphgym\u002Fcontrib\u002Ftransform\u002F`](graphgym\u002Fcontrib\u002Ftransform).\n\nWithin each directory, (at least) an example is provided, showing how to register user customized modules.\nNote that new user customized modules may result in new configurations; in these cases, new configuration fields\ncan be registered at [`graphgym\u002Fcontrib\u002Fconfig\u002F`](graphgym\u002Fcontrib\u002Fconfig).\n\n**Note: Applying to your own datasets.**\nA common use case will be applying GraphGym to your favorite datasets.\nTo do so, you may follow our example in \n[`graphgym\u002Fcontrib\u002Floader\u002Fexample.py`](graphgym\u002Fcontrib\u002Floader\u002Fexample.py).\nGraphGym currently accepts a list of [NetworkX](https:\u002F\u002Fnetworkx.org\u002Fdocumentation\u002Fstable\u002Findex.html) graphs \nor [PyG](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) datasets.\n\n### Use case: Design Space for Graph Neural Networks (NeurIPS 2020 Spotlight)\n\nReproducing experiments in *[Design Space for Graph Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)*, Jiaxuan You, Rex Ying, Jure Leskovec, **NeurIPS 2020 Spotlight**.\nYou may refer to the [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843) or [project webpage](http:\u002F\u002Fsnap.stanford.edu\u002Fgnn-design\u002F) for more details. \n\n```bash\n# NOTE: We include the raw results with GraphGym\n# If you run the following code, the results will be overridden.\ncd run\u002Fscripts\u002Fdesign\u002F\nbash run_design_round1.sh   # first round experiments, on a design space of 315K GNN designs\nbash run_design_round2.sh   # second round experiments, on a design space of 96 GNN designs\ncd ..\u002Fanalysis\njupyter notebook\ndesign_space.ipynb   # reproducing all the analyses in the paper\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_2ae94ab04488.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 4: Overview of the proposed GNN design space and task space.\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\n\n\n### Use case: Identity-aware Graph Neural Networks (AAAI 2021)\n\nReproducing experiments in *[Identity-aware Graph Neural Networks](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320)*, Jiaxuan You, Jonathan Gomes-Selman, Rex Ying, Jure Leskovec, **AAAI 2021**.\nYou may refer to the [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320) or [project webpage](http:\u002F\u002Fsnap.stanford.edu\u002Fidgnn\u002F) for more details. \n\n```bash\n# NOTE: We include the raw results for ID-GNN in analysis\u002Fidgnn.csv\ncd run\u002Fscripts\u002FIDGNN\u002F\nbash run_idgnn_node.sh   # Reproduce ID-GNN node-level results\nbash run_idgnn_edge.sh   # Reproduce ID-GNN edge-level results\nbash run_idgnn_graph.sh   # Reproduce ID-GNN graph-level results\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_15b203409430.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 5: Overview of Identity-aware Graph Neural Networks (ID-GNN).\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\n### Use case: Relational Multi-Task Learning: Modeling Relations between Data and Tasks (ICLR 2022 Spotlight)\n\nReproducing experiments in *[Relational Multi-Task Learning: Modeling Relations between Data and Tasks](https:\u002F\u002Fopenreview.net\u002Fpdf?id=8Py-W8lSUgy)*, Kaidi Cao&ast;, Jiaxuan You&ast;, Jure Leskovec, **ICLR 2022**.\n\n```bash\n# NOTE: We include the raw results for ID-GNN in analysis\u002Fidgnn.csv\ngit checkout meta_link\ncd run\u002Fscripts\u002FMetaLink\u002F\nbash run_metalink.sh.sh   # Reproduce MetaLink results for graph classification\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_15b203409430.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>Figure 5: Overview of Identity-aware Graph Neural Networks (ID-GNN).\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n### Use case: ROLAND: Graph Learning Framework for Dynamic Graphs (KDD 2022)\n*[ROLAND: Graph Learning Framework for Dynamic Graphs](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.07239)*, Jiaxuan You, Tianyu Du, Jure Leskovec, **KDD 2022**.\nROLAND forks GraphGym implementation. Please checkout the [corresponding repository for ROLAND](https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002Froland).\n\n## Contributors\n[Jiaxuan You](https:\u002F\u002Fcs.stanford.edu\u002F~jiaxuan\u002F) initiates the project and majorly contributes to the entire GraphGym platform. \n[Rex Ying](https:\u002F\u002Fcs.stanford.edu\u002Fpeople\u002Frexy\u002F) contributes to the feature augmentation modules.\nJonathan Gomes Selman enables GraphGym to have OGB support.\n\nGraphGym is inspired by the framework of [pycls](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fpycls). \nGraphGym adopts [DeepSNAP](https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002Fdeepsnap) as the default data representation.\nPart of GraphGym relies on [Pytorch Geometric](https:\u002F\u002Fgithub.com\u002Frusty1s\u002Fpytorch_geometric) functionalities.\n\n## Contributing\n\nWe warmly welcome the community to contribute to GraphGym.\nGraphGym is particularly designed to enable contribution \u002F customization in a simple way. \nFor example, you may contribute your modules to [`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib) by creating pull requests.\n\n## Citing GraphGym\nIf you find GraphGym or our paper useful, please cite our paper:\n```\n@InProceedings{you2020design,\n  title = {Design Space for Graph Neural Networks},\n  author = {You, Jiaxuan and Ying, Rex and Leskovec, Jure},\n  booktitle = {NeurIPS},\n  year = {2020}\n}\n```\n","# GraphGym\nGraphGym 是一个用于设计和评估图神经网络（GNN）的平台。\nGraphGym 的提出源自论文 *[图神经网络的设计空间](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)*，作者为 Jiaxuan You、Rex Ying 和 Jure Leskovec，该论文入选 **NeurIPS 2020 Spotlight**。\n\n此外，您也可以参考 [PyG](https:\u002F\u002Fwww.pyg.org)，它是 GraphGym 与 PyTorch Geometric 紧密集成的版本。\n\n### 主要特点\n**1. 高度模块化的 GNN 流程**\n- **数据:** 数据加载、数据划分\n- **模型:** 模块化 GNN 实现\n- **任务:** 节点级、边级、图级 GNN 任务\n- **评估:** 准确率、ROC AUC 等\n\n**2. 可复现的实验配置**\n- 每个实验都由 *配置文件完整描述*\n\n**3. 可扩展的实验管理**\n- 轻松并行启动 *数千个 GNN 实验*\n- 自动生成跨随机种子和实验的分析报告及图表。\n\n**4. 灵活的用户自定义功能**\n- 可轻松在 [`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib) 中 *注册您自己的模块*，例如数据加载器、GNN 层、损失函数等。\n\n### 最新动态\n- GraphGym 0.3.0 已发布。现在您可以通过 `pip install graphgym` 安装稳定版 GraphGym。\n- GraphGym 0.2.0 已发布。除了默认的 DeepSNAP 后端之外，GraphGym 现在也支持 PyTorch Geometric 后端。\n  您可以在 [`run_single_pyg.sh`](run\u002Frun_single_pyg.sh) 中尝试：\n```bash\ncd run\nbash run_single_pyg.sh \n```\n\n### 示例应用场景\n- *[图神经网络的设计空间](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)*，Jiaxuan You、Rex Ying、Jure Leskovec，**NeurIPS 2020 Spotlight**。\n- *[身份感知图神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320)*，Jiaxuan You、Jonathan Gomes-Selman、Rex Ying、Jure Leskovec，**AAAI 2021**。\n- *[关系型多任务学习：建模数据与任务之间的关系](https:\u002F\u002Fopenreview.net\u002Fpdf?id=8Py-W8lSUgy)*，Kaidi Cao&ast;、Jiaxuan You&ast;、Jure Leskovec，**ICLR 2022 Spotlight**。\n- *[ROLAND: 用于动态图的图学习框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.07239)*，Jiaxuan You、Tianyu Du、Jure Leskovec，**KDD 2022**。\n\n\n\n## 为什么选择 GraphGym？\n**简而言之:** GraphGym 非常适合 GNN 初学者、领域专家以及 GNN 研究人员。\n\n**场景 1:** 您是 GNN 初学者，希望理解 GNN 的工作原理。\n\n您可能已经阅读过许多关于 GNN 的精彩论文，并尝试编写自己的 GNN 实现。然而，即使使用现有的 GNN 库，您仍然需要自己实现核心流程。GraphGym 是一个理想的起点，帮助您学习 *标准化的 GNN 实现与评估方法*。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_70deeef332a6.png\" width=\"400px\" \u002F>\n  \u003Cb>\u003Cbr>图 1: 模块化 GNN 实现。\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n**场景 2:** 您希望将 GNN 应用于您的实际项目中。\n\n您可能知道，GNN 的模型组合多达数百种，而选择最佳模型却非常困难。更糟糕的是，我们在论文中表明（[arXiv:2011.08843](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)），不同任务的最佳 GNN 设计差异极大。GraphGym 提供了一个 *简单接口，可并行尝试数千种 GNN*，从而帮助您找到最适合特定任务的设计方案。经过对 1000 万种 GNN 模型与任务组合的分析，GraphGym 还推荐了一套“通用”的 GNN 设计空间。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_035235a22ed9.png\" width=\"1000px\" \u002F>\n  \u003Cb>\u003Cbr>图 2: 优选 GNN 设计指南。\u003C\u002Fb> \u003Cbr>(基于对 1000 万种 GNN 模型与任务组合的抽样分析。)\n\u003C\u002Fdiv>\n\n\n\u003Cbr>\n\n\n**场景 3:** 您是 GNN 研究者，希望创新 GNN 模型或提出新的 GNN 任务。\n\n假设您提出了一种新的 GNN 层 `ExampleConv`。GraphGym 可以帮助您有力地证明 `ExampleConv` 比 `GCNConv` 更优：在固定其他条件（包括计算成本）的情况下，从 1000 万种可能的模型-任务组合中随机抽样时，`ExampleConv` 胜出的概率更高。此外，GraphGym 还可以帮助您轻松进行超参数搜索，并直观展示哪些设计选择更为优越。总之，GraphGym 能够极大地促进您的 GNN 研究工作。\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_0a5af205263f.png\" width=\"1000px\" \u002F>\n  \u003Cb>\u003Cbr>图 3: 对给定 GNN 设计维度的评估\u003C\u002Fb>（此处以 BatchNorm 为例）。\n\u003C\u002Fdiv>\n\n\n\u003Cbr>\n\n## 安装说明\n\n**系统要求**\n\n- CPU 或 NVIDIA GPU、Linux 操作系统、Python 3\n- PyTorch 及其他 Python 包；以下提供这些依赖项的安装说明\n\n\n**1. Python 环境（可选）:**\n建议使用 Conda 包管理器\n\n```bash\nconda create -n graphgym python=3.7\nsource activate graphgym\n```\n\n**2. PyTorch:**\n请安装 [PyTorch](https:\u002F\u002Fpytorch.org\u002F)。我们已在 PyTorch 1.8.0 下验证了 GraphGym，它也应兼容 PyTorch 1.4.0 及以上版本。例如：\n```bash\n# CUDA 版本：cpu、cu92、cu101、cu102、cu111\npip install torch==1.8.0+cu101 -f https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Ftorch_stable.html\n```\n\n**3. PyTorch Geometric:**\n请按照其官方文档安装 [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002Fnotes\u002Finstallation.html)。例如：\n```bash\n# CUDA 版本：cpu、cu92、cu101、cu102、cu111\n\n# TORCH版本：1.4.0、1.5.0、1.6.0、1.7.0、1.8.0\nCUDA=cu101\nTORCH=1.8.0\npip install torch-scatter -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-sparse -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-cluster -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-spline-conv -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-geometric\n```\n\n**4. GraphGym及其他依赖：**\n\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\ncd GraphGym\npip install -r requirements.txt\npip install -e .  # 从最新版本安装\npip install graphgym # （可选）从PyPI稳定版安装\n```\n\n\n**5. 测试安装**\n\n**运行单个实验。** \n使用GraphGym的[`run_single.sh`](run\u002Frun_single.sh)脚本运行一个测试GNN实验。 \n配置文件指定在[`example.yaml`](run\u002Fconfigs\u002Fexample.yaml)中。 \n该实验是关于Cora数据集上的节点分类任务（随机80\u002F20划分训练集和验证集）。\n```bash\ncd run\nbash run_single.sh # 运行单个实验\n```\n\n**运行一批实验。**\n使用GraphGym的[`run_batch.sh`](run\u002Frun_batch.sh)脚本运行一批GNN实验。 \n配置文件分别指定在[`example.yaml`](run\u002Fconfigs\u002Fexample.yaml)（控制基本架构）和[`example.txt`](run\u002Fgrids\u002Fexample.txt)（控制网格搜索方式）中。 \n该实验在两个图分类数据集上，考察了推荐的GNN设计空间中的96种模型。 \n每个实验重复3次，并设置允许同时运行8个作业。 \n根据你的硬件条件，完成所有实验可能需要较长时间；你可以通过`Ctrl-C`终止实验（GraphGym会妥善关闭所有进程）。\n```bash\ncd run\nbash run_batch.sh # 运行一批实验 \n```\n\n**(可选) 使用CPU后端运行GraphGym。**\nGraphGym也支持CPU后端——你只需在`.yaml`文件中添加一行`device: cpu`即可。以下是一个示例。\n\n```bash\ncd run\nbash run_single_cpu.sh # 使用CPU后端运行单个实验\n```\n\n**(可选) 使用PyG后端运行GraphGym。**\n可以使用PyTorch Geometric（PyG）后端来运行GraphGym，对应的脚本为[`run_single_pyg.sh`](run\u002Frun_single_pyg.sh)和[`run_batch_pyg.sh`](run\u002Frun_batch_pyg.sh)，而不是默认的DeepSNAP后端。 \nPyG后端遵循原生PyG实现，效率略高于DeepSNAP后端。 \n目前，PyG后端仅支持用户提供的数据集划分，例如PyG原生数据集或OGB数据集。\n```bash\ncd run\nbash run_single_pyg.sh # 使用PyG后端运行单个实验\nbash run_batch_pyg.sh # 使用PyG后端运行一批实验 \n```\n\n\n\n\n\n\n## GraphGym深入使用\n\n### 1 运行单个GNN实验\n完整示例见[`run\u002Frun_single.sh`](run\u002Frun_single.sh)。\n\n**1.1 指定配置文件。**\n在GraphGym中，一个实验完全由`.yaml`文件指定。 \n`.yaml`文件中未指定的配置将使用[`graphgym\u002Fconfig.py`](graphgym\u002Fconfig.py)中的默认值填充。 \n例如，在[`run\u002Fconfigs\u002Fexample.yaml`](run\u002Fconfigs\u002Fexample.yaml)中，包含了数据集、训练、模型、GNN等方面的配置。 \n每项配置的具体说明均在[`graphgym\u002Fconfig.py`](graphgym\u002Fconfig.py)中定义。\n\n**1.2 启动实验。**\n以[`run\u002Frun_single.sh`](run\u002Frun_single.sh)为例：\n```bash\npython main.py --cfg configs\u002Fexample.yaml --repeat 3\n```\n可以通过`--repeat`参数指定重复使用的不同随机种子数量。\n\n**1.3 理解结果。**\n实验结果会自动保存到`run\u002Fresults\u002F${CONFIG_NAME}\u002F`目录下； \n在上述示例中，路径为`run\u002Fresults\u002Fexample\u002F`。 \n不同随机种子的结果会保存在不同的子目录中，如`run\u002Fresults\u002Fexample\u002F2`。 \n所有随机种子的汇总结果会*自动*生成在`run\u002Fresults\u002Fexample\u002Fagg`中， \n包括各指标的均值及标准差`_std`。 \n训练\u002F验证\u002F测试结果还会进一步保存在子目录中，如`run\u002Fresults\u002Fexample\u002Fagg\u002Fval`； \n其中，`stats.json`存储了每个epoch在所有随机种子上的汇总结果， \n`best.json`则存储了*验证准确率最高时的epoch*的结果。\n\n### 2 运行一批 GNN 实验\n完整示例在 [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh) 中指定。\n\n**2.1 指定一个基础配置文件。**\nGraphGym 支持运行一批实验。首先，用户需要选择一个基础架构 `--config`。这一批实验将通过扰动基础架构中的某些配置来创建。\n\n**2.2（可选）指定用于控制计算预算的基础配置文件。**\n此外，GraphGym 允许用户选择一个基础架构来 *控制网格搜索的计算预算*，即 `--config_budget`。目前，计算预算以可训练参数的数量来衡量；通过自动调整 GNN 的隐藏层维度来实现这一控制。如果未提供 `--config_budget`，GraphGym 将不会控制计算预算。\n\n**2.3 指定一个网格文件。**\n网格文件描述了如何对基础配置文件进行扰动，从而生成这一批实验。例如，基础配置文件可能指定一个用于 Cora 节点分类任务的 3 层 GCN 实验。然后，网格文件会说明如何沿不同维度对该实验进行扰动，比如层数、模型架构、数据集、任务难度等。\n\n**2.4 根据上述信息生成这批实验的配置文件。**\n例如，在 [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh) 中：\n```bash\npython configs_gen.py --config configs\u002F${DIR}\u002F${CONFIG}.yaml \\\n  --config_budget configs\u002F${DIR}\u002F${CONFIG}.yaml \\\n  --grid grids\u002F${DIR}\u002F${GRID}.txt \\\n  --out_dir configs\n```\n\n**2.5 启动这一批实验。**\n例如，在 [`run\u002Frun_batch.sh`](run\u002Frun_batch.sh) 中：\n```bash\nbash parallel.sh configs\u002F${CONFIG}_grid_${GRID} $REPEAT $MAX_JOBS\n```\n每个实验将重复 `$REPEAT` 次。我们实现了一个队列系统，按顺序启动所有作业，同时最多允许 `$MAX_JOBS` 个作业并行运行。实际上，我们的系统在处理数千个作业时表现非常出色。\n\n**2.6 理解实验结果。**\n实验结果将自动保存在目录 `run\u002Fresults\u002F${CONFIG_NAME}_grid_${GRID_NAME}\u002F` 中；在上面的例子中，就是 `run\u002Fresults\u002Fexample_grid_example\u002F`。每次实验完成后，GraphGym 还会自动对不同模型的结果取平均，并保存在 `run\u002Fresults\u002Fexample_grid_example\u002Fagg` 中。其中，`val.csv` 表示每个模型配置在 *最终*  epoch 的验证准确率；`val_best.csv` 表示在平均验证误差最高的 epoch 下的结果；`val_best_epoch.csv` 表示在验证误差最高的 epoch 下，跨不同随机种子取平均后的结果。如果提供了测试集划分，则 `test.csv` 表示每个模型配置在 *最终* epoch 的测试准确率；`test_best.csv` 表示在平均验证误差最高的 epoch 下的测试集结果；`test_best_epoch.csv` 表示在验证误差最高的 epoch 下，跨不同随机种子取平均后的测试集结果。\n\n\n\n### 3 分析结果\n我们提供了一个便捷工具，可以自动对一批实验进行概览，位于 [`analysis\u002Fexample.ipynb`](analysis\u002Fexample.ipynb)。\n```bash\ncd analysis\njupyter notebook\nexample.ipynb   # 自动提供一批实验的概览\n```\n\n\n\n### 4 用户自定义\nGraphGym 的一大亮点是它允许用户轻松注册自己的自定义模块。支持的自定义模块位于目录 [`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib) 中，包括：\n- 激活函数 [`graphgym\u002Fcontrib\u002Fact\u002F`](graphgym\u002Fcontrib\u002Fact)，\n- 自定义配置 [`graphgym\u002Fcontrib\u002Fconfig\u002F`](graphgym\u002Fcontrib\u002Fconfig)，\n- 特征增强 [`graphgym\u002Fcontrib\u002Ffeature_augment\u002F`](graphgym\u002Fcontrib\u002Ffeature_augment)，\n- 特征编码器 [`graphgym\u002Fcontrib\u002Ffeature_encoder\u002F`](graphgym\u002Fcontrib\u002Ffeature_encoder)，\n- GNN 头部模块 [`graphgym\u002Fcontrib\u002Fhead\u002F`](graphgym\u002Fcontrib\u002Fhead)，\n- GNN 层模块 [`graphgym\u002Fcontrib\u002Flayer\u002F`](graphgym\u002Fcontrib\u002Flayer)，\n- 数据加载器 [`graphgym\u002Fcontrib\u002Floader\u002F`](graphgym\u002Fcontrib\u002Floader)，\n- 损失函数 [`graphgym\u002Fcontrib\u002Floss\u002F`](graphgym\u002Fcontrib\u002Floss)，\n- GNN 网络架构 [`graphgym\u002Fcontrib\u002Fnetwork\u002F`](graphgym\u002Fcontrib\u002Fnetwork)，\n- 优化器 [`graphgym\u002Fcontrib\u002Foptimizer\u002F`](graphgym\u002Fcontrib\u002Foptimizer)，\n- GNN 全局池化（仅图分类任务）[`graphgym\u002Fcontrib\u002Fpooling\u002F`](graphgym\u002Fcontrib\u002Fpooling)，\n- GNN 阶段模块 [`graphgym\u002Fcontrib\u002Fstage\u002F`](graphgym\u002Fcontrib\u002Fstage)，\n- GNN 训练流水线 [`graphgym\u002Fcontrib\u002Ftrain\u002F`](graphgym\u002Fcontrib\u002Ftrain)，\n- 数据变换 [`graphgym\u002Fcontrib\u002Ftransform\u002F`](graphgym\u002Fcontrib\u002Ftransform)。\n\n在每个目录中，至少会提供一个示例，展示如何注册用户自定义模块。需要注意的是，新的用户自定义模块可能会带来新的配置项；在这种情况下，可以在 [`graphgym\u002Fcontrib\u002Fconfig\u002F`](graphgym\u002Fcontrib\u002Fconfig) 中注册新的配置字段。\n\n**注：应用于您自己的数据集。**\n常见的用法是将 GraphGym 应用于您喜爱的数据集。为此，您可以参考 [`graphgym\u002Fcontrib\u002Floader\u002Fexample.py`](graphgym\u002Fcontrib\u002Floader\u002Fexample.py) 中的示例。GraphGym 目前接受 [NetworkX](https:\u002F\u002Fnetworkx.org\u002Fdocumentation\u002Fstable\u002Findex.html) 图或 [PyG](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) 数据集的列表。\n\n### 使用案例：图神经网络的设计空间（NeurIPS 2020 Spotlight）\n\n重现 *[图神经网络的设计空间](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843)* 中的实验，作者为 Jiaxuan You、Rex Ying 和 Jure Leskovec，该论文入选 **NeurIPS 2020 Spotlight**。更多详情请参阅 [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2011.08843) 或 [项目主页](http:\u002F\u002Fsnap.stanford.edu\u002Fgnn-design\u002F)。\n\n```bash\n# 注意：我们已包含使用 GraphGym 得到的原始结果\n# 如果您运行以下代码，这些结果将会被覆盖。\ncd run\u002Fscripts\u002Fdesign\u002F\nbash run_design_round1.sh   # 第一轮实验，在包含 31.5 万种 GNN 设计的空间上进行\nbash run_design_round2.sh   # 第二轮实验，在包含 96 种 GNN 设计的空间上进行\ncd ..\u002Fanalysis\njupyter notebook\ndesign_space.ipynb   # 重现论文中的所有分析\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_2ae94ab04488.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>图 4：所提出的 GNN 设计空间和任务空间的概览。\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\n\n\n### 使用案例：身份感知的图神经网络（AAAI 2021）\n\n重现 *[身份感知的图神经网络](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320)* 中的实验，作者为 Jiaxuan You、Jonathan Gomes-Selman、Rex Ying 和 Jure Leskovec，该论文入选 **AAAI 2021**。更多详情请参阅 [论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2101.10320) 或 [项目主页](http:\u002F\u002Fsnap.stanford.edu\u002Fidgnn\u002F)。\n\n```bash\n\n# 注意：我们在 analysis\u002Fidgnn.csv 中包含了 ID-GNN 的原始结果\ncd run\u002Fscripts\u002FIDGNN\u002F\nbash run_idgnn_node.sh   # 复现 ID-GNN 的节点级别结果\nbash run_idgnn_edge.sh   # 复现 ID-GNN 的边级别结果\nbash run_idgnn_graph.sh   # 复现 ID-GNN 的图级别结果\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_15b203409430.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>图5：身份感知图神经网络（ID-GNN）概览。\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n\n### 使用场景：关系多任务学习：建模数据与任务之间的关系（ICLR 2022 Spotlight）\n\n复现 *[关系多任务学习：建模数据与任务之间的关系](https:\u002F\u002Fopenreview.net\u002Fpdf?id=8Py-W8lSUgy)* 中的实验，作者：Kaidi Cao&ast;、Jiaxuan You&ast;、Jure Leskovec，**ICLR 2022**。\n\n```bash\n# 注意：我们在 analysis\u002Fidgnn.csv 中包含了 ID-GNN 的原始结果\ngit checkout meta_link\ncd run\u002Fscripts\u002FMetaLink\u002F\nbash run_metalink.sh.sh   # 复现 MetaLink 在图分类任务上的结果\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_readme_15b203409430.png\" width=\"900px\" \u002F>\n  \u003Cb>\u003Cbr>图5：身份感知图神经网络（ID-GNN）概览。\u003C\u002Fb>\n\u003C\u002Fdiv>\n\n### 使用场景：ROLAND：面向动态图的图学习框架（KDD 2022）\n*[ROLAND：面向动态图的图学习框架](https:\u002F\u002Farxiv.org\u002Fabs\u002F2208.07239)*，作者：Jiaxuan You、Tianyu Du、Jure Leskovec，**KDD 2022**。\nROLAND 基于 GraphGym 的实现进行了分支。请访问 [ROLAND 的对应仓库](https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002Froland)。\n\n## 贡献者\n[Jiaxuan You](https:\u002F\u002Fcs.stanford.edu\u002F~jiaxuan\u002F) 发起并主导了该项目，为整个 GraphGym 平台做出了主要贡献。\n[Rex Ying](https:\u002F\u002Fcs.stanford.edu\u002Fpeople\u002Frexy\u002F) 负责特征增强模块的开发。\nJonathan Gomes Selman 使 GraphGym 支持 OGB 数据集。\n\nGraphGym 的设计灵感来源于 [pycls](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fpycls) 框架。\nGraphGym 默认采用 [DeepSNAP](https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002Fdeepsnap) 作为数据表示方式。\nGraphGym 的部分功能依赖于 [Pytorch Geometric](https:\u002F\u002Fgithub.com\u002Frusty1s\u002Fpytorch_geometric) 提供的能力。\n\n## 参与贡献\n\n我们热烈欢迎社区参与 GraphGym 的开发与贡献。\nGraphGym 特别设计为便于简单地进行贡献和定制。\n例如，您可以通过创建拉取请求，将您的模块提交到 [`graphgym\u002Fcontrib\u002F`](graphgym\u002Fcontrib) 目录中。\n\n## 引用 GraphGym\n\n如果您认为 GraphGym 或我们的论文对您有所帮助，请引用我们的论文：\n```\n@InProceedings{you2020design,\n  title = {图神经网络的设计空间},\n  author = {You, Jiaxuan 和 Ying, Rex 和 Leskovec, Jure},\n  booktitle = {NeurIPS},\n  year = {2020}\n}\n```","# GraphGym 快速上手指南\n\nGraphGym 是一个用于设计和评估图神经网络（GNN）的模块化平台。它支持高度可配置的实验流程，能够轻松并行运行数千个 GNN 实验，并自动生成分析报告。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux\n*   **硬件**: CPU 或 NVIDIA GPU\n*   **Python 版本**: Python 3.7+ (推荐 3.7)\n*   **核心依赖**:\n    *   PyTorch (验证版本：1.8.0，支持 1.4.0+)\n    *   PyTorch Geometric (PyG)\n    *   其他 Python 包 (通过 `requirements.txt` 安装)\n\n> **提示**：国内用户建议使用 Conda 管理环境，并在安装 PyTorch 及相关库时使用清华或中科大镜像源以加速下载。\n\n## 2. 安装步骤\n\n### 2.1 创建 Python 环境 (推荐)\n使用 Conda 创建隔离环境：\n```bash\nconda create -n graphgym python=3.7\nconda activate graphgym\n```\n\n### 2.2 安装 PyTorch\n根据您的 CUDA 版本安装 PyTorch。以下以 CUDA 10.1 为例（国内用户可替换为清华源）：\n```bash\n# 官方源示例\npip install torch==1.8.0+cu101 -f https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Ftorch_stable.html\n\n# 国内用户推荐 (清华源示例，请根据实际 cuda 版本调整)\n# pip install torch==1.8.0+cu101 -f https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fpytorch-wheels\u002Ftorch_stable.html\n```\n\n### 2.3 安装 PyTorch Geometric (PyG)\n需要先安装 `torch-scatter`, `torch-sparse` 等扩展库。请设置对应的环境变量：\n```bash\nexport CUDA=cu101\nexport TORCH=1.8.0\n\npip install torch-scatter -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-sparse -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-cluster -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-spline-conv -f https:\u002F\u002Fpytorch-geometric.com\u002Fwhl\u002Ftorch-${TORCH}+${CUDA}.html\npip install torch-geometric\n```\n\n### 2.4 安装 GraphGym\n您可以选择从源码安装（最新功能）或从 PyPI 安装（稳定版）。\n\n**方式 A：从源码安装 (推荐)**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\ncd GraphGym\npip install -r requirements.txt\npip install -e .\n```\n\n**方式 B：从 PyPI 安装 (稳定版)**\n```bash\npip install graphgym\n```\n\n## 3. 基本使用\n\n### 3.1 运行单个实验\n这是最简单的使用方式，用于在 Cora 数据集上运行节点分类任务。\n\n1.  进入运行目录：\n    ```bash\n    cd run\n    ```\n2.  执行脚本：\n    ```bash\n    bash run_single.sh\n    ```\n    *该命令会读取 `configs\u002Fexample.yaml` 配置文件，默认重复实验 3 次（不同随机种子）。*\n\n3.  **查看结果**：\n    实验结果将自动保存在 `run\u002Fresults\u002Fexample\u002F` 目录下。\n    *   不同种子的结果位于子文件夹（如 `2`）。\n    *   聚合后的统计结果（均值、标准差）位于 `run\u002Fresults\u002Fexample\u002Fagg`。\n    *   `best.json` 文件记录了验证集准确率最高时的测试结果。\n\n### 3.2 运行批量实验 (网格搜索)\n如果您想对比多种模型架构或超参数，可以运行批量实验。\n\n1.  进入运行目录：\n    ```bash\n    cd run\n    ```\n2.  执行批处理脚本：\n    ```bash\n    bash run_batch.sh\n    ```\n    *该脚本会根据 `configs\u002Fexample.yaml` (基础架构) 和 `grids\u002Fexample.txt` (搜索网格) 生成 96 个不同的实验配置，并并发运行。*\n\n3.  **控制并发数**：\n    您可以在 `run_batch.sh` 中修改 `$MAX_JOBS` 变量来控制同时运行的任务数量，以适应您的硬件资源。\n\n### 3.3 自定义配置 (进阶)\nGraphGym 的核心在于 `.yaml` 配置文件。您可以复制 `run\u002Fconfigs\u002Fexample.yaml` 并修改以下关键部分来定制实验：\n*   `dataset`: 更换数据集\n*   `model`: 更改 GNN 层类型、层数、隐藏维度\n*   `train`: 调整学习率、Batch Size、优化器等\n*   `device`: 设置为 `cpu` 即可在无 GPU 环境下运行\n\n修改后，通过以下命令运行自定义配置：\n```bash\npython main.py --cfg configs\u002Fyour_config.yaml --repeat 3\n```","某生物制药公司的算法团队正试图利用图神经网络（GNN）预测新合成分子的毒性，需要在数百种模型架构中找到最优解以加速药物筛选流程。\n\n### 没有 GraphGym 时\n- **重复造轮子**：每次尝试新的 GNN 层或损失函数，都需要手动重写数据加载、训练循环和评估指标等基础代码，开发效率极低。\n- **实验难以复现**：超参数组合繁多，缺乏统一的配置文件管理，导致无法精确回溯某个特定实验的设置，结果不可靠。\n- **规模扩展受限**：想要并行测试上千种模型变体时，需自行编写复杂的脚本调度任务，难以自动化生成对比分析报告。\n- **结论缺乏说服力**：仅凭少数几次实验结果断言新模型优越，缺乏在大规模设计空间下的统计显著性验证，难以说服领域专家。\n\n### 使用 GraphGym 后\n- **模块化快速迭代**：只需在 `contrib` 目录注册自定义的分子特征提取层，即可立即接入标准化的全流程管道，专注核心创新。\n- **配置即实验**：每个实验完全由 YAML 配置文件定义，轻松实现“一键复现”，确保所有结果均可追溯且透明。\n- **千级实验并行**：通过简单命令即可并发启动数千个不同随机种子和架构的实验，并自动生成包含误差分析和趋势图的完整报告。\n- **科学严谨的评估**：基于千万级模型 - 任务组合的设计空间采样，能 statistically 证明新架构在特定毒性预测任务上的泛化优势。\n\nGraphGym 将原本需要数周的手工试错过程缩短为几天的高效自动化探索，让团队能从繁琐的工程细节中解放出来，专注于发现真正有效的药物预测模型。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsnap-stanford_GraphGym_ee58d2f5.png","snap-stanford","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsnap-stanford_0df96ae4.png","",null,"https:\u002F\u002Fgithub.com\u002Fsnap-stanford",[78,82],{"name":79,"color":80,"percentage":81},"Python","#3572A5",95.8,{"name":83,"color":84,"percentage":85},"Shell","#89e051",4.2,1884,198,"2026-04-14T19:07:44","NOASSERTION","Linux","可选（支持 CPU 或 NVIDIA GPU），具体显存大小未说明，支持 CUDA 9.2, 10.1, 10.2, 11.1","未说明",{"notes":94,"python":95,"dependencies":96},"建议使用 Conda 管理环境。默认后端为 DeepSNAP，也支持 PyTorch Geometric (PyG) 后端。运行批量实验时可根据硬件配置调整并发任务数。若使用 CPU 后端，需在配置文件中添加 'device: cpu'。","3.7+",[97,98,99,100,101,102],"torch>=1.4.0","pytorch_geometric","torch-scatter","torch-sparse","torch-cluster","torch-spline-conv",[14,104],"其他","2026-03-27T02:49:30.150509","2026-04-16T01:49:42.627794",[108,113,118,123,128,132],{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},35041,"为什么训练结束时会出现精度（precision）、召回率（recall）和 F1 分数为 0 的警告或错误？","这通常意味着模型没有做出任何正类预测（no positive predictions），表明模型表现不佳。如果确实是因为没有正类预测导致输出无法正确生成，这可能是一个需要修复的 bug。用户可以尝试自行修复代码，或者等待维护者更新。此外，检查数据集是否平衡以及任务配置是否正确也很重要。","https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\u002Fissues\u002F32",{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},35042,"如何在使用 GraphGym 时保留 PyTorch Geometric (PyG) 数据集中原有的固定数据划分（fixed split\u002Fmasks）？","默认情况下，GraphGym 使用 DeepSNAP 后端，这会忽略原有的固定划分并执行随机划分。要保留原有的固定划分（如 Cora 数据集的 masks），需要使用 PyG 原生后端。请运行 `main_pyg.py` 而不是默认的 `main.py`。PyG 后端直接采用 PyG 数据集中的固定划分，不会转换为 DeepSNAP 格式。","https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\u002Fissues\u002F24",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},35043,"运行脚本时遇到 'ImportError: cannot import name set_out_dir from graphgym.config' 错误怎么办？","这是一个已知的导入错误，通常发生在版本不匹配或代码结构变更时。根据社区反馈，部分用户因无法通过简单配置解决此问题，选择直接复现相关模型（如 ID-GNN）而不依赖该特定脚本入口。建议检查 GraphGym 版本是否与教程一致，或查看是否有更新的入口脚本替代了旧版的 `set_out_dir` 调用。","https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\u002Fissues\u002F41",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},35044,"在安装测试步骤运行 'bash run_single.sh' 时遇到 'libcusparse.so' 找不到或其他 CUDA 相关错误如何解决？","此类错误通常与 PyTorch、torch_geometric 或 DeepSNAP 的 CUDA 环境配置有关。确保安装的 PyTorch 版本与系统 CUDA 版本兼容。错误堆栈显示问题常出现在导入 `deepsnap` 或 `torch_geometric` 时。建议尝试重新安装与当前 CUDA 版本匹配的 `torch-scatter`, `torch-sparse`, `torch-cluster` 等几何库，并确保环境变量中包含了 CUDA 库路径（如 `LD_LIBRARY_PATH`）。","https:\u002F\u002Fgithub.com\u002Fsnap-stanford\u002FGraphGym\u002Fissues\u002F20",{"id":129,"question_zh":130,"answer_zh":131,"source_url":112},35045,"在自定义数据集上运行网格搜索（grid search）时，为何经常因为指标计算错误导致结果聚合失败？","这通常是因为在某些实验配置下，模型未能预测出正样本，导致 sklearn 在计算精确率（precision）或 F1 分数时抛出异常，进而阻止了 `agg` 文件夹的创建。虽然将 `cfg.metric_best` 改为 'f1' 是一种尝试，但如果模型本身不输出正类预测，错误仍会发生。建议检查数据集的平衡性，或在代码层面添加对零分母情况的处理逻辑。",{"id":133,"question_zh":134,"answer_zh":135,"source_url":117},35046,"DeepSNAP 后端和 PyG 后端在数据处理上有什么主要区别？","DeepSNAP 后端（默认，通过 `main.py` 使用）会将 PyG 数据集转换为 DeepSNAP 格式，并且默认执行随机数据划分，忽略原始数据集中的固定掩码（masks）。PyG 后端（通过 `main_pyg.py` 使用）是 PyG 原生的，不进行格式转换，能够直接保留并利用 PyG 数据集中预定义的固定数据划分。如果需要复现使用固定划分的论文结果，应选用 PyG 后端。",[137,142],{"id":138,"version":139,"summary_zh":140,"released_at":141},272402,"v0.4.0","在本版本中：\n- 我们同步了来自 [PyG GraphGym](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002Fnotes\u002Fgraphgym.html) 的更新，同时为保持向后兼容性，仍支持 DeepSNAP 和 PyG 两种后端。\n- 完成了规范的代码 lint 检查。","2022-03-24T23:28:17",{"id":143,"version":144,"summary_zh":145,"released_at":146},272403,"v0.3.1","GraphGym 稳定版，新增功能如下：\n- 基于 [PyTorch Geometric](https:\u002F\u002Fgithub.com\u002Frusty1s\u002Fpytorch_geometric)（PyG）的后端\n- 发布了 PyPI 包","2021-06-29T06:03:18"]