[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mathLab--PINA":3,"tool-mathLab--PINA":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":79,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":23,"env_os":100,"env_gpu":101,"env_ram":100,"env_deps":102,"category_tags":108,"github_topics":109,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":128,"updated_at":129,"faqs":130,"releases":159},3938,"mathLab\u002FPINA","PINA","Physics-Informed Neural networks for Advanced modeling","PINA 是一个基于 Python 的开源科学机器学习框架，旨在简化物理信息神经网络（PINNs）、神经算子等前沿模型的构建与求解过程。它主要解决了传统数值方法在处理复杂微分方程时计算成本高、灵活性差的痛点，同时降低了将物理定律融入深度学习模型的技术门槛。\n\n无论是从事流体力学、材料科学的研究人员，还是希望快速验证算法的开发者，都能通过 PINA 高效地定义问题、设计模型并执行训练。该工具特别适合作为连接理论推导与工程应用的桥梁，帮助用户在无需从头编写底层代码的情况下，专注于科学问题的本质。\n\nPINA 的核心亮点在于其高度模块化的架构，建立在 PyTorch、PyTorch Lightning 及 PyTorch Geometric 之上。它不仅支持多设备并行训练以提升大规模数据处理效率，还提供了从“全自动”到“细粒度控制”的灵活工作流。用户既可以利用高层抽象快速搭建标准模型，也能深入底层自定义网络结构或优化策略，轻松实现组件的替换与扩展，是探索科学机器学习领域的得力助手。","\u003C!--\nCopyright Contributors to the Pyro project.\n\nSPDX-License-Identifier: Apache-2.0\n-->\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_e4f68dc38812.png\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_e4f68dc38812.png\"\n             alt=\"PINA logo\"\n             style=\"width: 220px; aspect-ratio: 1 \u002F 1; object-fit: contain;\">\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ch2 style=\"margin-left: 20px; font-size: 1.8rem; line-height: 1.2;\">\n        A Unified Framework for Scientific Machine Learning\n      \u003C\u002Fh2>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n-----------------------------------------\n\n[![pages-build-deployment](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpina-mathlab?label=version&logo=pypi)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpina-mathlab\u002F)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpina-mathlab?label=downloads&logo=pypi)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpina-mathlab\u002F)\n[![JOSS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJOSS-10.21105\u002FJOSS.05352-blue?logo=open-access)](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.05352)\n[![LICENSE](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FmathLab\u002FPINA)](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmain\u002FLICENSE.rst)\n\n\n[Getting Started](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials) |\n[Documentation](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F) |\n[Contributing](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\n\n**PINA** is an open-source Python library designed to simplify and accelerate the development of Scientific Machine Learning (SciML) solutions. Built on top of [PyTorch](https:\u002F\u002Fpytorch.org\u002F), [PyTorch Lightning](https:\u002F\u002Flightning.ai\u002Fdocs\u002Fpytorch\u002Fstable\u002F), and [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F), PINA provides an intuitive framework for defining, experimenting with, and solving complex problems using Neural Networks, Physics-Informed Neural Networks (PINNs), Neural Operators, and more.\n\n- **Modular Architecture**: Designed with modularity in mind and relying on powerful yet composable abstractions, PINA allows users to easily plug, replace, or extend components, making experimentation and customization straightforward.\n\n- **Scalable Performance**: With native support for multi-device training, PINA handles large datasets efficiently, offering performance close to hand-crafted implementations with minimal overhead.\n\n- **Highly Flexible**: Whether you're looking for full automation or granular control, PINA adapts to your workflow. High-level abstractions simplify model definition, while expert users can dive deep to fine-tune every aspect of the training and inference process.\n\n\n\n## Installation\n\n### Installing a stable PINA release\n\n**Install using pip:**\n```sh\npip install \"pina-mathlab\"\n```\n\n**Install from source:**\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\ncd PINA\ngit checkout master\npip install .\n```\n\n**Install with extra packages:**\n\nTo install extra dependencies required to run tests or tutorials directories, please use the following command:\n```sh\npip install \"pina-mathlab[extras]\" \n```\nAvailable extras include:\n* `dev` for development purpuses, use this if you want to [Contribute](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md#contributing-to-pina).\n* `test` for running test locally.\n* `doc` for building documentation locally.\n* `tutorial` for running [Tutorials](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials).\n\n## Quick Tour for New Users\nSolving a differential problem in **PINA** follows the *four steps pipeline*:\n\n1. Define the problem to be solved with its constraints using the [Problem API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#problems).\n\n2. Design your model using PyTorch, or for graph-based problems, leverage PyTorch Geometric to build Graph Neural Networks. You can also import models directly from the [Model API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#models).\n\n3. Select or build a Solver for the Problem, e.g., supervised solvers, or physics-informed (e.g., PINN) solvers. [PINA Solvers](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#solvers) are modular and can be used as-is or customized.\n\n4. Train the model using the [Trainer API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002Ftrainer.html) class, built on PyTorch Lightning, which supports efficient, scalable training with advanced features.\n\nDo you want to learn more about it? Look at our [Tutorials](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials).\n\n### Solve Data Driven Problems\nData driven modelling aims to learn a function that given some input data gives an output (e.g. regression, classification, ...). In PINA you can easily do this by:\n```python\nimport torch\nfrom pina import Trainer\nfrom pina.model import FeedForward\nfrom pina.solver import SupervisedSolver\nfrom pina.problem.zoo import SupervisedProblem\n\ninput_tensor  = torch.rand((10, 1))\ntarget_tensor = input_tensor.pow(3)\n\n# Step 1. Define problem\nproblem = SupervisedProblem(input_tensor, target_tensor)\n# Step 2. Design model (you can use your favourite torch.nn.Module in here)\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n# Step 3. Define Solver\nsolver  = SupervisedSolver(problem, model, use_lt=False)\n# Step 4. Train\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu')\ntrainer.train()\n```\n### Solve Physics Informed Problems\nPhysics-informed modeling aims to learn functions that not only fit data, but also satisfy known physical laws, such as differential equations or boundary conditions. For example, the following differential problem:\n\n$$\n\\begin{cases}\n\\frac{d}{dx}u(x) &=  u(x) \\quad x \\in(0,1)\\\\\nu(x=0) &= 1\n\\end{cases}\n$$\n\nin PINA, can be easily implemented by:\n\n```python\nfrom pina import Trainer, Condition\nfrom pina.problem import SpatialProblem\nfrom pina.operator import grad\nfrom pina.solver import PINN\nfrom pina.model import FeedForward\nfrom pina.domain import CartesianDomain\nfrom pina.equation import Equation, FixedValue\n\ndef ode_equation(input_, output_):\n    u_x = grad(output_, input_, components=[\"u\"], d=[\"x\"])\n    u = output_.extract([\"u\"])\n    return u_x - u\n\n# build the problem\nclass SimpleODE(SpatialProblem):\n    output_variables = [\"u\"]\n    spatial_domain = CartesianDomain({\"x\": [0, 1]})\n    domains = {\n        \"x0\": CartesianDomain({\"x\": 0.0}),\n        \"D\": CartesianDomain({\"x\": [0, 1]}),\n    }\n    conditions = {\n        \"bound_cond\": Condition(domain=\"x0\", equation=FixedValue(1.0)),\n        \"phys_cond\": Condition(domain=\"D\", equation=Equation(ode_equation)),\n    }\n\n# Step 1. Define problem\nproblem = SimpleODE()\nproblem.discretise_domain(n=100, mode=\"grid\", domains=[\"D\", \"x0\"])\n# Step 2. Design model (you can use your favourite torch.nn.Module in here)\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n# Step 3. Define Solver\nsolver  = PINN(problem, model)\n# Step 4. Train\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu')\ntrainer.train()\n```\n\n## Application Programming Interface\nHere's a quick look at PINA's main module. For a better experience and full details, check out the [documentation](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F).\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Freadme\u002FPINA_API.png\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_55c97bf4f4b5.png\" \u002F>\n\u003C\u002Fa>\n\n## Contributing and Community\n\nWe would love to develop PINA together with our community! Best way to get started is to select any issue from the [`good-first-issue` label](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). If you would like to contribute, please review our [Contributing Guide](CONTRIBUTING.md) for all relevant details.\n\nWe warmly thank all the contributors that have supported PINA so far:\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_38f0f0aeaf90.png\"\n       alt=\"Contributors\"\n       style=\"max-width: 100%; height: auto; display: block;\">\n\u003C\u002Fa>\n\nMade with [contrib.rocks](https:\u002F\u002Fcontrib.rocks).\n\n## Citation\nIf **PINA** has been significant in your research, and you would like to acknowledge the project in your academic publication, we suggest citing the following paper:\n\n```\nCoscia, D., Ivagnes, A., Demo, N., & Rozza, G. (2023). Physics-Informed Neural networks for Advanced modeling. Journal of Open Source Software, 8(87), 5352.\n```\n\nOr in BibTex format\n```\n@article{coscia2023physics,\n        title={Physics-Informed Neural networks for Advanced modeling},\n        author={Coscia, Dario and Ivagnes, Anna and Demo, Nicola and Rozza, Gianluigi},\n        journal={Journal of Open Source Software},\n        volume={8},\n        number={87},\n        pages={5352},\n        year={2023}\n        }\n```\n","\u003C!--\n版权所有，Pyro 项目贡献者。\n\nSPDX 许可证标识符：Apache-2.0\n-->\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_e4f68dc38812.png\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_e4f68dc38812.png\"\n             alt=\"PINA 标志\"\n             style=\"width: 220px; aspect-ratio: 1 \u002F 1; object-fit: contain;\">\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ch2 style=\"margin-left: 20px; font-size: 1.8rem; line-height: 1.2;\">\n        面向科学机器学习的统一框架\n      \u003C\u002Fh2>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n-----------------------------------------\n\n[![pages-build-deployment](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Factions\u002Fworkflows\u002Fpages\u002Fpages-build-deployment)\n[![版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpina-mathlab?label=version&logo=pypi)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpina-mathlab\u002F)\n[![下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fpina-mathlab?label=downloads&logo=pypi)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpina-mathlab\u002F)\n[![JOSS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJOSS-10.21105\u002FJOSS.05352-blue?logo=open-access)](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.05352)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FmathLab\u002FPINA)](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmain\u002FLICENSE.rst)\n\n\n[入门指南](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials) |\n[文档](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F) |\n[贡献说明](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md)\n\n**PINA** 是一个开源的 Python 库，旨在简化和加速科学机器学习（SciML）解决方案的开发。基于 [PyTorch](https:\u002F\u002Fpytorch.org\u002F)、[PyTorch Lightning](https:\u002F\u002Flightning.ai\u002Fdocs\u002Fpytorch\u002Fstable\u002F) 和 [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) 构建，PINA 提供了一个直观的框架，用于定义、实验和解决使用神经网络、物理信息神经网络（PINNs）、神经算子等复杂问题。\n\n- **模块化架构**：PINA 在设计时充分考虑了模块化，并依赖于强大且可组合的抽象层，允许用户轻松地插入、替换或扩展组件，从而简化实验和自定义过程。\n  \n- **可扩展性能**：PINA 原生支持多设备训练，能够高效处理大规模数据集，提供接近手写实现的性能，同时开销极低。\n\n- **高度灵活**：无论您是需要完全自动化还是精细控制，PINA 都能适应您的工作流程。高层抽象简化了模型定义，而高级用户则可以深入到训练和推理过程的每一个细节进行微调。\n\n\n\n## 安装\n\n### 安装稳定版 PINA\n\n**使用 pip 安装：**\n```sh\npip install \"pina-mathlab\"\n```\n\n**从源码安装：**\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\ncd PINA\ngit checkout master\npip install .\n```\n\n**安装附加包：**\n\n要安装运行测试或教程目录所需的额外依赖，请使用以下命令：\n```sh\npip install \"pina-mathlab[extras]\" \n```\n可用的附加选项包括：\n* `dev` 用于开发目的，如果您想 [贡献代码](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md#contributing-to-pina)，请使用此选项。\n* `test` 用于在本地运行测试。\n* `doc` 用于在本地构建文档。\n* `tutorial` 用于运行 [教程](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials)。\n\n## 新用户快速入门\n在 **PINA** 中解决微分问题遵循 *四步流程*：\n\n1. 使用 [Problem API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#problems) 定义待求解的问题及其约束条件。\n\n2. 使用 PyTorch 设计您的模型；对于基于图的问题，可以利用 PyTorch Geometric 构建图神经网络。您也可以直接从 [Model API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#models) 导入模型。\n\n3. 选择或构建问题的求解器，例如监督型求解器或物理信息型求解器（如 PINN）。[PINA 求解器](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002F_code.html#solvers) 具有模块化特性，可以直接使用或进行定制。\n\n4. 使用基于 PyTorch Lightning 构建的 [Trainer API](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F_rst\u002Ftrainer.html) 类来训练模型，该类支持高效、可扩展的训练，并具备高级功能。\n\n想了解更多吗？请查看我们的 [教程](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials)。\n\n### 解决数据驱动问题\n数据驱动建模旨在学习一个函数，该函数根据输入数据生成输出（例如回归、分类等）。在 PINA 中，您可以轻松完成以下操作：\n```python\nimport torch\nfrom pina import Trainer\nfrom pina.model import FeedForward\nfrom pina.solver import SupervisedSolver\nfrom pina.problem.zoo import SupervisedProblem\n\ninput_tensor  = torch.rand((10, 1))\ntarget_tensor = input_tensor.pow(3)\n\n# 第一步：定义问题\nproblem = SupervisedProblem(input_tensor, target_tensor)\n# 第二步：设计模型（您可以在此处使用自己喜欢的 torch.nn.Module）\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n# 第三步：定义求解器\nsolver  = SupervisedSolver(problem, model, use_lt=False)\n# 第四步：训练\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu')\ntrainer.train()\n```\n### 解决物理信息问题\n物理信息建模旨在学习不仅拟合数据，而且满足已知物理定律（如微分方程或边界条件）的函数。例如，以下微分问题：\n\n$$\n\\begin{cases}\n\\frac{d}{dx}u(x) &=  u(x) \\quad x \\in(0,1)\\\\\nu(x=0) &= 1\n\\end{cases}\n$$\n\n在 PINA 中，可以轻松实现如下：\n\n```python\nfrom pina import Trainer, Condition\nfrom pina.problem import SpatialProblem\nfrom pina.operator import grad\nfrom pina.solver import PINN\nfrom pina.model import FeedForward\nfrom pina.domain import CartesianDomain\nfrom pina.equation import Equation, FixedValue\n\ndef ode_equation(input_, output_):\n    u_x = grad(output_, input_, components=[\"u\"], d=[\"x\"])\n    u = output_.extract([\"u\"])\n    return u_x - u\n\n# 构建问题\nclass SimpleODE(SpatialProblem):\n    output_variables = [\"u\"]\n    spatial_domain = CartesianDomain({\"x\": [0, 1]})\n    domains = {\n        \"x0\": CartesianDomain({\"x\": 0.0}),\n        \"D\": CartesianDomain({\"x\": [0, 1]}),\n    }\n    conditions = {\n        \"bound_cond\": Condition(domain=\"x0\", equation=FixedValue(1.0)),\n        \"phys_cond\": Condition(domain=\"D\", equation=Equation(ode_equation)),\n    }\n\n# 第一步：定义问题\nproblem = SimpleODE()\nproblem.discretise_domain(n=100, mode=\"grid\", domains=[\"D\", \"x0\"])\n# 第二步：设计模型（您可以在此处使用自己喜欢的 torch.nn.Module）\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n# 第三步：定义求解器\nsolver  = PINN(problem, model)\n\n# 步骤 4. 训练\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu')\ntrainer.train()\n```\n\n## 应用程序编程接口\n以下是 PINA 主要模块的简要介绍。为了获得更好的使用体验和完整信息，请查阅 [文档](https:\u002F\u002Fmathlab.github.io\u002FPINA\u002F)。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Freadme\u002FPINA_API.png\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_55c97bf4f4b5.png\" \u002F>\n\u003C\u002Fa>\n\n## 贡献与社区\n\n我们非常期待与社区伙伴共同开发 PINA！开始贡献的最佳方式是从带有 [`good-first-issue` 标签](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) 的问题中选择一个。如果您希望参与贡献，请仔细阅读我们的 [贡献指南](CONTRIBUTING.md)，以获取所有相关细节。\n\n我们衷心感谢迄今为止支持 PINA 的所有贡献者：\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_readme_38f0f0aeaf90.png\"\n       alt=\"贡献者\"\n       style=\"max-width: 100%; height: auto; display: block;\">\n\u003C\u002Fa>\n\n由 [contrib.rocks](https:\u002F\u002Fcontrib.rocks) 制作。\n\n## 引用\n如果 **PINA** 对您的研究起到了重要作用，并且您希望在学术出版物中提及该项目，我们建议引用以下论文：\n\n```\nCoscia, D., Ivagnes, A., Demo, N., & Rozza, G. (2023). 基于物理信息的神经网络在高级建模中的应用. 开源软件期刊, 8(87), 5352.\n```\n\n或以 BibTex 格式：\n```\n@article{coscia2023physics,\n        title={基于物理信息的神经网络在高级建模中的应用},\n        author={Coscia, Dario 和 Ivagnes, Anna 和 Demo, Nicola 和 Rozza, Gianluigi},\n        journal={开源软件期刊},\n        volume={8},\n        number={87},\n        pages={5352},\n        year={2023}\n        }\n```","# PINA 快速上手指南\n\nPINA 是一个基于 PyTorch 构建的开源科学机器学习（SciML）统一框架，旨在简化物理信息神经网络（PINNs）、神经算子等复杂问题的定义与求解。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：3.8 及以上\n*   **前置依赖**：\n    *   [PyTorch](https:\u002F\u002Fpytorch.org\u002F)\n    *   [PyTorch Lightning](https:\u002F\u002Flightning.ai\u002Fdocs\u002Fpytorch\u002Fstable\u002F)\n    *   [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) (处理图神经网络问题时必需)\n\n> **提示**：建议先安装与您的 CUDA 版本匹配的 PyTorch，然后再安装 PINA。\n\n## 安装步骤\n\n### 方式一：通过 pip 安装（推荐）\n\n直接安装稳定版本：\n\n```sh\npip install \"pina-mathlab\"\n```\n\n若需运行教程或进行测试，可安装额外依赖包：\n\n```sh\npip install \"pina-mathlab[extras]\" \n```\n\n支持的额外选项包括：\n*   `tutorial`：运行官方教程所需依赖\n*   `test`：本地运行测试所需依赖\n*   `dev`：开发贡献所需依赖\n*   `doc`：构建文档所需依赖\n\n### 方式二：从源码安装\n\n如果您需要最新的功能或参与开发：\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\ncd PINA\ngit checkout master\npip install .\n```\n\n## 基本使用\n\nPINA 的核心工作流遵循四个步骤：**定义问题 -> 设计模型 -> 选择求解器 -> 训练**。\n\n### 场景一：数据驱动问题 (Data Driven)\n\n适用于回归、分类等传统机器学习任务。以下示例演示了如何拟合 $y = x^3$ 函数。\n\n```python\nimport torch\nfrom pina import Trainer\nfrom pina.model import FeedForward\nfrom pina.solver import SupervisedSolver\nfrom pina.problem.zoo import SupervisedProblem\n\n# 生成模拟数据\ninput_tensor  = torch.rand((10, 1))\ntarget_tensor = input_tensor.pow(3)\n\n# Step 1. 定义问题\nproblem = SupervisedProblem(input_tensor, target_tensor)\n\n# Step 2. 设计模型 (使用前馈神经网络)\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n\n# Step 3. 定义求解器\nsolver  = SupervisedSolver(problem, model, use_lt=False)\n\n# Step 4. 训练模型\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu') # 若无 GPU 可改为 'cpu'\ntrainer.train()\n```\n\n### 场景二：物理信息问题 (Physics Informed)\n\n适用于求解微分方程，模型需同时满足数据约束和物理定律。以下示例求解常微分方程：\n$$ \\frac{d}{dx}u(x) = u(x), \\quad u(0)=1 $$\n\n```python\nfrom pina import Trainer, Condition\nfrom pina.problem import SpatialProblem\nfrom pina.operator import grad\nfrom pina.solver import PINN\nfrom pina.model import FeedForward\nfrom pina.domain import CartesianDomain\nfrom pina.equation import Equation, FixedValue\n\n# 定义物理方程: du\u002Fdx - u = 0\ndef ode_equation(input_, output_):\n    u_x = grad(output_, input_, components=[\"u\"], d=[\"x\"])\n    u = output_.extract([\"u\"])\n    return u_x - u\n\n# 构建问题类\nclass SimpleODE(SpatialProblem):\n    output_variables = [\"u\"]\n    # 定义空间域 x ∈ [0, 1]\n    spatial_domain = CartesianDomain({\"x\": [0, 1]})\n    domains = {\n        \"x0\": CartesianDomain({\"x\": 0.0}), # 边界点\n        \"D\": CartesianDomain({\"x\": [0, 1]}), # 计算域\n    }\n    conditions = {\n        \"bound_cond\": Condition(domain=\"x0\", equation=FixedValue(1.0)), # 边界条件 u(0)=1\n        \"phys_cond\": Condition(domain=\"D\", equation=Equation(ode_equation)), # 物理方程约束\n    }\n\n# Step 1. 实例化问题并离散化域\nproblem = SimpleODE()\nproblem.discretise_domain(n=100, mode=\"grid\", domains=[\"D\", \"x0\"])\n\n# Step 2. 设计模型\nmodel   = FeedForward(input_dimensions=1, output_dimensions=1, layers=[64, 64])\n\n# Step 3. 定义 PINN 求解器\nsolver  = PINN(problem, model)\n\n# Step 4. 训练模型\ntrainer = Trainer(solver, max_epochs=1000, accelerator='gpu')\ntrainer.train()\n```\n\n更多高级用法和详细案例，请参考官方 [Tutorials](https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Ftree\u002Fmaster\u002Ftutorials#pina-tutorials)。","某航空航天研究院的工程师团队正在利用深度学习加速高超音速飞行器周围复杂流场的模拟，以替代传统计算成本极高的数值求解器。\n\n### 没有 PINA 时\n- **代码耦合严重**：研究人员需手动编写大量样板代码来硬编码纳维 - 斯托克斯方程（Navier-Stokes），导致物理公式与神经网络架构深度绑定，修改方程极其困难。\n- **训练调试繁琐**：缺乏统一框架支持多设备并行，面对大规模网格数据时训练效率低下，且难以灵活切换不同的优化策略或损失函数权重。\n- **复用性差**：每尝试一种新的神经算子（Neural Operator）或图神经网络结构，都需要重构底层数据加载和约束处理逻辑，实验迭代周期长达数周。\n\n### 使用 PINA 后\n- **模块化定义物理约束**：通过 PINA 直观的 Problem API，工程师只需声明式地定义微分方程和边界条件，即可自动将其嵌入损失函数，无需关心底层求导细节。\n- **高性能弹性扩展**：依托 PyTorch Lightning 后端，PINA 原生支持多 GPU 分布式训练，在保持接近手写代码性能的同时，将大规模流场模拟的训练时间缩短了 60%。\n- **敏捷实验迭代**：借助其高度灵活的架构，团队能像搭积木一样快速替换模型组件（如从普通 PINN 切换至图神经网络），将新算法的验证周期从数周压缩至几天。\n\nPINA 通过统一的科学机器学习框架，让科研人员从繁琐的代码工程中解放出来，专注于物理模型创新与高精度求解。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FmathLab_PINA_e4f68dc3.png","mathLab","SISSA mathLab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FmathLab_a127dd5d.png","Applied Mathematics Laboratory @ SISSA",null,"luca.heltai@sissa.it","http:\u002F\u002Fmathlab.sissa.it","https:\u002F\u002Fgithub.com\u002FmathLab",[84,88,92],{"name":85,"color":86,"percentage":87},"Python","#3572A5",98.6,{"name":89,"color":90,"percentage":91},"TeX","#3D6117",1.3,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0,727,97,"2026-04-05T14:27:05","MIT","未说明","非必需，但示例代码中演示了使用 'gpu' 加速器进行训练；具体型号、显存及 CUDA 版本未在文档中明确指定，需参考 PyTorch 官方要求。",{"notes":103,"python":100,"dependencies":104},"该工具是一个基于 PyTorch 生态的科学机器学习框架。安装时可通过 pip 直接安装稳定版，或从源码安装。若需运行测试、构建文档或教程，需额外安装对应的依赖包（如 'test', 'doc', 'tutorial' 等 extras）。文档未提供具体的操作系统、Python 版本、内存或特定 GPU 硬件的硬性限制，通常取决于底层依赖库（PyTorch）的版本兼容性。",[105,106,107],"PyTorch","PyTorch Lightning","PyTorch Geometric",[26,53,13],[110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127],"physics-informed-neural-networks","modeling","machine-learning","deep-learning","python","pytorch","differential-equations","ode","pde","physics-informed","hacktoberfest","lightining","pinn","equation-learning","neural-networks","neural-operators","pytorch-lightning","torch-geometric","2026-03-27T02:49:30.150509","2026-04-06T05:19:33.367033",[131,136,141,146,151,155],{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},17976,"运行教程代码时遇到 'Condition takes only the following keyword arguments' 错误怎么办？","该错误通常是因为使用的教程代码版本与当前安装的 PINA 库版本不匹配（例如使用了旧版教程代码运行在新版库上，或反之）。维护者指出该问题已在后续的教程合并更新中修复。建议检查并更新您的代码以匹配当前库的版本，或者克隆包含最新修复的代码分支（如 PR #104 对应的阶段）来解决问题。","https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues\u002F90",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},17977,"如何在 PINN 中使用数据里存在但方程中未出现的额外输入变量？","这是一个已知的采样点机制问题。维护者确认在 Beta 版本（通过 PR #104 实现）中已解决此问题。如果您遇到此问题，建议克隆该 PR 对应的代码分支进行测试。维护者提到新版本将支持 PyTorch Lightning 后端，并且新的 `Condition` 类组合能正确处理此类情况。由于即将发布新版本，当前版本可能不再针对此问题进行单独修补，建议升级到开发中的新版本。","https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues\u002F99",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},17978,"在比较多个方法的残差图时，如果残差有正负值，应该如何统一颜色条（color-bar）进行比较？","为了公平地比较不同方法的残差分布，通常建议取残差的绝对值（absolute values），然后观察绝对值最低的区域。这样可以消除正负抵消的影响，直观地展示误差的大小分布。虽然原讨论因不活跃而关闭，但在科学计算可视化中，使用绝对值或对数刻度（log scale）来展示残差大小是标准做法。","https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues\u002F350",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},17979,"项目中出现循环导入（Circular Imports）错误该如何解决？","这是由于项目中广泛使用深层相对导入（如 `from ... import`）导致的架构耦合问题。解决方案是将所有内部导入重构为绝对导入（Absolute Imports），遵循无环依赖原则。例如，将 `from ..problem import SpatialProblem` 改为 `from pina.problem import SpatialProblem`。同时，应确保底层模块不导入高层模块，并清理 `__init__.py` 文件中可能导致循环的“急切”导入。该项目计划在 0.3 版本中执行此项重构。","https:\u002F\u002Fgithub.com\u002FmathLab\u002FPINA\u002Fissues\u002F756",{"id":152,"question_zh":153,"answer_zh":154,"source_url":135},17980,"如何定义涉及多个物理量（如应力、应变、位移）相互映射的复杂力学问题？","PINN 允许处理多个函数通过映射相互关联的情况。对于需要在同一域 Omega 上求解不同偏微分方程（PDE）的多个函数（例如应力满足 div(stress)=f，应变满足 grad(displacement)=strain），您可以为每个物理量和每个约束条件定义单独的 `Condition`。虽然目前可能需要为每个约束定义新的条件，但这种方法是可行的。未来版本可能会优化这一流程，以减少重复定义相同域的工作量。",{"id":156,"question_zh":157,"answer_zh":158,"source_url":135},17981,"如何处理对应于函数导数的输入和输出数据？","PINN 框架不仅支持最小化函数值 'u'，也支持处理对应于函数导数的输入输出数据。在定义条件（Condition）时，可以通过自定义函数计算梯度（使用 `grad` 工具），并将这些导数项作为损失函数的一部分进行优化。这对于力学等领域特别有用，其中边界条件或观测数据可能直接涉及应变率或应力梯度等导数项。",[160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,233,237],{"id":161,"version":162,"summary_zh":79,"released_at":163},108365,"v0.2.6.post2603","2026-03-01T04:38:37",{"id":165,"version":166,"summary_zh":79,"released_at":167},108366,"v0.2.6.post2602","2026-02-01T04:44:45",{"id":169,"version":170,"summary_zh":79,"released_at":171},108367,"v0.2.6.post2601","2026-01-01T04:03:23",{"id":173,"version":174,"summary_zh":79,"released_at":175},108368,"v0.2.6","2025-12-18T14:59:25",{"id":177,"version":178,"summary_zh":79,"released_at":179},108369,"v0.2.5.post2512","2025-12-01T04:05:22",{"id":181,"version":182,"summary_zh":79,"released_at":183},108370,"v0.2.3.post2510","2025-10-01T03:24:30",{"id":185,"version":186,"summary_zh":79,"released_at":187},108371,"v0.2.3","2025-09-23T16:00:52",{"id":189,"version":190,"summary_zh":79,"released_at":191},108372,"v0.2.2.post2508","2025-08-01T04:05:35",{"id":193,"version":194,"summary_zh":79,"released_at":195},108373,"v0.2.2.post2507","2025-07-01T03:50:17",{"id":197,"version":198,"summary_zh":79,"released_at":199},108374,"v0.2.2","2025-06-16T12:11:06",{"id":201,"version":202,"summary_zh":79,"released_at":203},108375,"v0.2.1.post2506","2025-06-01T03:51:11",{"id":205,"version":206,"summary_zh":79,"released_at":207},108376,"v0.2.1.post250505","2025-05-05T09:46:48",{"id":209,"version":210,"summary_zh":79,"released_at":211},108377,"v0.2.1.dev2505","2025-05-05T09:30:13",{"id":213,"version":214,"summary_zh":79,"released_at":215},108378,"v0.2.1.post2505","2025-05-01T03:36:22",{"id":217,"version":218,"summary_zh":79,"released_at":219},108379,"v0.2.1","2025-04-24T14:29:13",{"id":221,"version":222,"summary_zh":79,"released_at":223},108380,"v0.2.0post2504b","2025-04-24T08:22:01",{"id":225,"version":226,"summary_zh":79,"released_at":227},108381,"v0.2.0.post2504","2025-04-23T17:03:55",{"id":229,"version":230,"summary_zh":231,"released_at":232},108382,"v0.2.0","# PINA v0.2 发行说明\n\n## 亮点\n\n我们非常高兴地宣布 PINA 库的 0.2 版本发布，这是一个重大更新，带来了众多增强功能和新特性，同时保持与先前版本的兼容性。\n\n在本次发布中，我们通过重新设计数据流，显著提升了与 PyTorch Lightning 的集成度，从而在整个训练和测试过程中实现了更快速、更可靠的数据管理。此外，我们还将 [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) 集成到 PINA 中，简化了基于图模型的定义、训练和测试流程。\n\n以下章节将详细介绍此版本引入的各项更新。\n\n## 新特性与更新\n\n### 基于图的建模\n\n得益于与 [PyTorch Geometric](https:\u002F\u002Fpytorch-geometric.readthedocs.io\u002Fen\u002Flatest\u002F) 的集成，PINA 现在提供了一个用户友好的界面来定义图对象并训练基于图的模型。具体而言，我们引入了 `Graph` 类，它是 `torch_geometric.data.Data` 的扩展，支持使用带标签的张量（`LabelTensor` 对象）。此外，我们还提供了两个接口 `KNNGraph` 和 `RadiusGraph`，用于以简单直观的方式自动计算边以及可选的边特征，从而构建 `Graph` 对象。目前，我们还推出了一个初始的图神经算子实现，用户只需导入该类并相应配置参数即可轻松使用。未来版本中，我们将继续扩展库中的模型种类。\n\n### 数据管理：引入 PINADataModule\n\n我们引入了 `PinaDataModule` 类，它是 `lightning.pytorch.LightningDataModule` 的扩展，旨在提升 PINA 内部数据流的可靠性和效率。这一新组件的主要优势包括：\n\n- **自动数据集划分**：用户只需在 Trainer 中指定训练、验证和测试所需的比例，PINA 就会自动完成数据集的划分，并创建相应的 DataLoader。\n- **与图数据无缝集成**：重新设计的流水线原生支持多种数据类型（如 `torch.Tensor` 和 `torch_geometric.data.Data`），无需对用户代码进行任何修改。这是通过定义独立的自定义数据集类来实现的，使得整个数据加载过程完全透明。\n- **模块化与可扩展性**：相比上一版本，我们通过实施高效的 GPU 数据传输策略，显著提升了数据加载性能。这对于物理信息驱动的问题尤为有利，因为此时数据集可以完全容纳在 GPU 内存中。此外，我们还引入了对 PyTorch DataLoader 更高级功能的支持，例如内存固定，进一步优化了数据处理和性能。\n\n### 并行","2025-03-20T09:30:11",{"id":234,"version":235,"summary_zh":79,"released_at":236},108383,"v0.1.2.post2503","2025-03-01T03:10:43",{"id":238,"version":239,"summary_zh":79,"released_at":240},108384,"v0.1.2.post2501","2025-01-01T03:09:24"]