[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-MilesCranmer--PySR":3,"tool-MilesCranmer--PySR":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 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,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":72,"owner_website":79,"owner_url":80,"languages":81,"stars":102,"forks":103,"last_commit_at":104,"license":105,"difficulty_score":32,"env_os":106,"env_gpu":107,"env_ram":107,"env_deps":108,"category_tags":116,"github_topics":118,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":133,"updated_at":134,"faqs":135,"releases":164},4859,"MilesCranmer\u002FPySR","PySR","High-Performance Symbolic Regression in Python and Julia","PySR 是一款专为 Python 和 Julia 打造的高性能符号回归开源工具。它的核心任务是从数据中自动挖掘出简洁、可解释的数学公式，而不仅仅是提供一个难以理解的“黑盒”预测模型。\n\n在传统机器学习中，模型往往缺乏透明度，用户难以知晓其背后的逻辑。PySR 正是为了解决这一痛点而生，它通过进化算法搜索最优的符号表达式，让数据分析结果变得直观且易于验证。这使得它特别适合科研人员、数据科学家以及需要探索物理定律或数学关系的开发者使用，尤其是在处理低维数据集或试图从神经网络中提取解析方程（即“符号蒸馏”）时表现卓越。\n\nPySR 的独特之处在于其强大的底层引擎由 Julia 语言编写，确保了极高的运算效率，同时提供了友好的 Python 接口，兼顾了性能与易用性。无论是希望发现新科学规律的研究者，还是追求模型可解释性的工程师，PySR 都能帮助你从复杂数据中提炼出清晰优雅的数学真理。","[\u002F\u002F]: # (Logo:)\n\n\u003Cdiv align=\"center\">\n\nPySR searches for symbolic expressions which optimize a particular objective.\n\nhttps:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fassets\u002F7593028\u002Fc8511a49-b408-488f-8f18-b1749078268f\n\n\n# PySR: High-Performance Symbolic Regression in Python and Julia\n\n| **Docs** | **Forums** | **Paper** | **colab demo** |\n|:---:|:---:|:---:|:---:|\n|[![Documentation](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002Fdocs.yml\u002Fbadge.svg)](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002F)|[![Discussions](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscussions-github-informational)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fdiscussions)|[![Paper](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2305.01582-b31b1b)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582)|[![Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcolab-notebook-yellow)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002Fexamples\u002Fpysr_demo.ipynb)|\n\n| **pip** | **conda** | **Stats** |\n| :---: | :---: | :---: |\n|[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpysr.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpysr)|[![Conda Version](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpysr.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr)|\u003Cdiv align=\"center\">pip: [![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_3e1e515a4baf.png)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpysr\u002F)\u003Cbr>conda: [![Anaconda-Server Badge](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr\u002Fbadges\u002Fdownloads.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr)\u003C\u002Fdiv>|\n\n\u003C\u002Fdiv>\n\nIf you find PySR useful, please cite the paper [arXiv:2305.01582](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582).\nIf you've finished a project with PySR, please submit a PR to showcase your work on the [research showcase page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fpapers)!\n\n**Contents**:\n\n- [Why PySR?](#why-pysr)\n- [Installation](#installation)\n- [Quickstart](#quickstart)\n- [→ Documentation](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr)\n- [Contributors](#contributors-)\n\n\u003Cdiv align=\"center\">\n\n### Test status\n\n| **Linux** | **Windows** | **macOS** |\n|---|---|---|\n|[![Linux](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI.yml)|[![Windows](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_Windows.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_Windows.yml)|[![macOS](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_mac.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_mac.yml)|\n| **Docker** | **Conda** | **Coverage** |\n|[![Docker](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_docker.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_docker.yml)|[![conda-forge](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_conda_forge.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_conda_forge.yml)|[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FMilesCranmer\u002FPySR\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FMilesCranmer\u002FPySR)|\n\n\u003C\u002Fdiv>\n\n## Why PySR?\n\nPySR is an open-source tool for *Symbolic Regression*: a machine learning\ntask where the goal is to find an interpretable symbolic expression that optimizes some objective.\n\nOver a period of several years, PySR has been engineered from the ground up\nto be (1) as high-performance as possible,\n(2) as configurable as possible, and (3) easy to use.\nPySR is developed alongside the Julia library [SymbolicRegression.jl](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl),\nwhich forms the powerful search engine of PySR.\nThe details of these algorithms are described in the [PySR paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582).\n\nSymbolic regression works best on low-dimensional datasets, but\none can also extend these approaches to higher-dimensional\nspaces by using \"*Symbolic Distillation*\" of Neural Networks, as explained in\n[2006.11287](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.11287), where we apply\nit to N-body problems. Here, one essentially uses\nsymbolic regression to convert a neural net\nto an analytic equation. Thus, these tools simultaneously present\nan explicit and powerful way to interpret deep neural networks.\n\n## Installation\n\n### Pip\n\nYou can install PySR with pip:\n\n```bash\npip install pysr\n```\n\nJulia dependencies will be installed at first import.\n\n### Conda\n\nSimilarly, with conda:\n\n```bash\nconda install -c conda-forge pysr\n```\n\n\u003Cdetails>\n\u003Csummary>\n\n### Docker\n\n\u003C\u002Fsummary>\n\nYou can also use the `Dockerfile` to install PySR in a docker container\n\n1. Clone this repo.\n2. Within the repo's directory, build the docker container:\n```bash\ndocker build -t pysr .\n```\n3. You can then start the container with an IPython execution with:\n```bash\ndocker run -it --rm pysr ipython\n```\n\nFor more details, see the [docker section](#docker).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### Apptainer\n\n\u003C\u002Fsummary>\n\nIf you are using PySR on a cluster where you do not have root access,\nyou can use [Apptainer](https:\u002F\u002Fapptainer.org\u002F) to build a container\ninstead of Docker. The `Apptainer.def` file is analogous to the `Dockerfile`,\nand can be built with:\n\n```bash\napptainer build --notest pysr.sif Apptainer.def\n```\n\nand launched with\n\n```bash\napptainer run pysr.sif\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### Troubleshooting\n\n\u003C\u002Fsummary>\n\nOne issue you might run into can result in a hard crash at import with\na message like \"`GLIBCXX_...` not found\". This is due to another one of the Python dependencies\nloading an incorrect `libstdc++` library. To fix this, you should modify your\n`LD_LIBRARY_PATH` variable to reference the Julia libraries. For example, if the Julia\nversion of `libstdc++.so` is located in `$HOME\u002F.julia\u002Fjuliaup\u002Fjulia-1.10.0+0.x64.linux.gnu\u002Flib\u002Fjulia\u002F`\n(which likely differs on your system!), you could add:\n\n```\nexport LD_LIBRARY_PATH=$HOME\u002F.julia\u002Fjuliaup\u002Fjulia-1.10.0+0.x64.linux.gnu\u002Flib\u002Fjulia\u002F:$LD_LIBRARY_PATH\n```\n\nto your `.bashrc` or `.zshrc` file.\n\n\u003C\u002Fdetails>\n\n\n## Quickstart\n\nYou might wish to try the interactive tutorial [here](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002Fexamples\u002Fpysr_demo.ipynb), which uses the notebook in `examples\u002Fpysr_demo.ipynb`.\n\nIn practice, I highly recommend using IPython rather than Jupyter, as the printing is much nicer.\nBelow is a quick demo here which you can paste into a Python runtime.\nFirst, let's import numpy to generate some test data:\n\n```python\nimport numpy as np\n\nX = 2 * np.random.randn(100, 5)\ny = 2.5382 * np.cos(X[:, 3]) + X[:, 0] ** 2 - 0.5\n```\n\nWe have created a dataset with 100 datapoints, with 5 features each.\nThe relation we wish to model is $2.5382 \\cos(x_3) + x_0^2 - 0.5$.\n\nNow, let's create a PySR model and train it.\nPySR's main interface is in the style of scikit-learn:\n\n```python\nfrom pysr import PySRRegressor\n\nmodel = PySRRegressor(\n    maxsize=20,\n    niterations=40,  # \u003C Increase me for better results\n    binary_operators=[\"+\", \"*\"],\n    unary_operators=[\n        \"cos\",\n        \"exp\",\n        \"sin\",\n        \"inv(x) = 1\u002Fx\",\n        # ^ Custom operator (julia syntax)\n    ],\n    extra_sympy_mappings={\"inv\": lambda x: 1 \u002F x},\n    # ^ Define operator for SymPy as well\n    elementwise_loss=\"loss(prediction, target) = (prediction - target)^2\",\n    # ^ Custom loss function (julia syntax)\n)\n```\n\nThis will set up the model for 40 iterations of the search code, which contains hundreds of thousands of mutations and equation evaluations.\n\nLet's train this model on our dataset:\n\n```python\nmodel.fit(X, y)\n```\n\nInternally, this launches a Julia process which will do a multithreaded search for equations to fit the dataset.\n\nEquations will be printed during training, and once you are satisfied, you may\nquit early by hitting 'q' and then \\\u003Center\\>.\n\nAfter the model has been fit, you can run `model.predict(X)`\nto see the predictions on a given dataset using the automatically-selected expression,\nor, for example, `model.predict(X, 3)` to see the predictions of the 3rd equation.\n\nYou may run:\n\n```python\nprint(model)\n```\n\nto print the learned equations:\n\n```python\nPySRRegressor.equations_ = [\n\t   pick     score                                           equation       loss  complexity\n\t0        0.000000                                          4.4324794  42.354317           1\n\t1        1.255691                                          (x0 * x0)   3.437307           3\n\t2        0.011629                          ((x0 * x0) + -0.28087974)   3.358285           5\n\t3        0.897855                              ((x0 * x0) + cos(x3))   1.368308           6\n\t4        0.857018                ((x0 * x0) + (cos(x3) * 2.4566472))   0.246483           8\n\t5  >>>>       inf  (((cos(x3) + -0.19699033) * 2.5382123) + (x0 *...   0.000000          10\n]\n```\n\nThis arrow in the `pick` column indicates which equation is currently selected by your\n`model_selection` strategy for prediction.\n(You may change `model_selection` after `.fit(X, y)` as well.)\n\n`model.equations_` is a pandas DataFrame containing all equations, including callable format\n(`lambda_format`),\nSymPy format (`sympy_format` - which you can also get with `model.sympy()`), and even JAX and PyTorch format\n(both of which are differentiable - which you can get with `model.jax()` and `model.pytorch()`).\n\nNote that `PySRRegressor` stores the state of the last search, and will restart from where you left off the next time you call `.fit()`, assuming you have set `warm_start=True`.\nThis will cause problems if significant changes are made to the search parameters (like changing the operators). You can run `model.reset()` to reset the state.\n\nYou will notice that PySR will save two files:\n`hall_of_fame...csv` and `hall_of_fame...pkl`.\nThe csv file is a list of equations and their losses, and the pkl file is a saved state of the model.\nYou may load the model from the `pkl` file with:\n\n```python\nmodel = PySRRegressor.from_file(\"hall_of_fame.2022-08-10_100832.281.pkl\")\n```\n\nThere are several other useful features such as denoising (e.g., `denoise=True`),\nfeature selection (e.g., `select_k_features=3`).\nFor examples of these and other features, see the [examples page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fexamples).\nFor a detailed look at more options, see the [options page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Foptions).\nYou can also see the full API at [this page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fapi).\nThere are also tips for tuning PySR on [this page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Ftuning).\n\n### Detailed Example\n\nThe following code makes use of as many PySR features as possible.\nNote that is just a demonstration of features and you should not use this example as-is.\nFor details on what each parameter does, check out the [API page](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fapi\u002F).\n\n```python\nmodel = PySRRegressor(\n    populations=8,\n    # ^ Assuming we have 4 cores, this means 2 populations per core, so one is always running.\n    population_size=50,\n    # ^ Slightly larger populations, for greater diversity.\n    ncycles_per_iteration=500,\n    # ^ Generations between migrations.\n    niterations=10000000,  # Run forever\n    early_stop_condition=(\n        \"stop_if(loss, complexity) = loss \u003C 1e-6 && complexity \u003C 10\"\n        # Stop early if we find a good and simple equation\n    ),\n    timeout_in_seconds=60 * 60 * 24,\n    # ^ Alternatively, stop after 24 hours have passed.\n    maxsize=50,\n    # ^ Allow greater complexity.\n    maxdepth=10,\n    # ^ But, avoid deep nesting.\n    binary_operators=[\"*\", \"+\", \"-\", \"\u002F\"],\n    unary_operators=[\"square\", \"cube\", \"exp\", \"cos2(x)=cos(x)^2\"],\n    constraints={\n        \"\u002F\": (-1, 9),\n        \"square\": 9,\n        \"cube\": 9,\n        \"exp\": 9,\n    },\n    # ^ Limit the complexity within each argument.\n    # \"inv\": (-1, 9) states that the numerator has no constraint,\n    # but the denominator has a max complexity of 9.\n    # \"exp\": 9 simply states that `exp` can only have\n    # an expression of complexity 9 as input.\n    nested_constraints={\n        \"square\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n        \"cube\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n        \"exp\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n    },\n    # ^ Nesting constraints on operators. For example,\n    # \"square(exp(x))\" is not allowed, since \"square\": {\"exp\": 0}.\n    complexity_of_operators={\"\u002F\": 2, \"exp\": 3},\n    # ^ Custom complexity of particular operators.\n    complexity_of_constants=2,\n    # ^ Punish constants more than variables\n    select_k_features=4,\n    # ^ Train on only the 4 most important features\n    progress=True,\n    # ^ Can set to false if printing to a file.\n    weight_randomize=0.1,\n    # ^ Randomize the tree much more frequently\n    cluster_manager=None,\n    # ^ Can be set to, e.g., \"slurm\", to run a slurm\n    # cluster. Just launch one script from the head node.\n    precision=64,\n    # ^ Higher precision calculations.\n    warm_start=True,\n    # ^ Start from where left off.\n    turbo=True,\n    # ^ Faster evaluation (experimental)\n    extra_sympy_mappings={\"cos2\": lambda x: sympy.cos(x)**2},\n    # extra_torch_mappings={sympy.cos: torch.cos},\n    # ^ Not needed as cos already defined, but this\n    # is how you define custom torch operators.\n    # extra_jax_mappings={sympy.cos: \"jnp.cos\"},\n    # ^ For JAX, one passes a string.\n)\n```\n\n### Docker\n\nYou can also test out PySR in Docker, without\ninstalling it locally, by running the following command in\nthe root directory of this repo:\n\n```bash\ndocker build -t pysr .\n```\n\nThis builds an image called `pysr` for your system's architecture,\nwhich also contains IPython. You can select a specific version\nof Python and Julia with:\n\n```bash\ndocker build -t pysr --build-arg JLVERSION=1.10.0 --build-arg PYVERSION=3.11.6 .\n```\n\nYou can then run with this dockerfile using:\n\n```bash\ndocker run -it --rm -v \"$PWD:\u002Fdata\" pysr ipython\n```\n\nwhich will link the current directory to the container's `\u002Fdata` directory\nand then launch ipython.\n\nIf you have issues building for your system's architecture,\nyou can emulate another architecture by including `--platform linux\u002Famd64`,\nbefore the `build` and `run` commands.\n\n\u003Cdiv align=\"center\">\n\n### Contributors ✨\n\n\u003C\u002Fdiv>\n\nWe are eager to welcome new contributors! Check out our contributors [guide](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002FCONTRIBUTORS.md) for tips 🚀.\nIf you have an idea for a new feature, don't hesitate to share it on the [issues](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues) or [discussions](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fdiscussions) page.\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmarkkittisopikul\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_33a25e0f2755.png\" width=\"50px;\" alt=\"Mark Kittisopikul\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mark Kittisopikul\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mkitti\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-mkitti\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-mkitti\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-mkitti\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#promotion-mkitti\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amkitti\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-mkitti\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mkitti\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftttc3\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_9dce20a0e300.png\" width=\"50px;\" alt=\"T Coxon\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>T Coxon\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Atttc3\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tttc3\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#plugin-tttc3\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-tttc3\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-tttc3\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-tttc3\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Atttc3\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-tttc3\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tttc3\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-tttc3\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDhananjayAshok\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_dd571b3d8b39.png\" width=\"50px;\" alt=\"Dhananjay Ashok\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Dhananjay Ashok\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=DhananjayAshok\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#example-DhananjayAshok\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"#ideas-DhananjayAshok\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-DhananjayAshok\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=DhananjayAshok\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgitlab.com\u002Fjohanbluecreek\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_481372e4bdb2.png\" width=\"50px;\" alt=\"Johan Blåbäck\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Johan Blåbäck\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Ajohanbluecreek\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johanbluecreek\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-johanbluecreek\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-johanbluecreek\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-johanbluecreek\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ajohanbluecreek\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johanbluecreek\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-johanbluecreek\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fmathopt.de\u002Fpeople\u002Fmartensen\u002Findex.php\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7971a402ac6d.png\" width=\"50px;\" alt=\"JuliusMartensen\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>JuliusMartensen\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AAlCap23\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=AlCap23\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=AlCap23\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#plugin-AlCap23\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-AlCap23\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-AlCap23\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-AlCap23\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#platform-AlCap23\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#promotion-AlCap23\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AAlCap23\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-AlCap23\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"#userTesting-AlCap23\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fngam\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_dcb91489b8aa.png\" width=\"50px;\" alt=\"ngam\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ngam\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ngam\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#infra-ngam\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-ngam\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Angam\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-ngam\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ngam\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fcjdoris.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c6db70eaae38.png\" width=\"50px;\" alt=\"Christopher Rowley\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Rowley\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=cjdoris\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-cjdoris\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-cjdoris\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-cjdoris\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Acjdoris\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkazewong\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_401690b1fee5.png\" width=\"50px;\" alt=\"Kaze Wong\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kaze Wong\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Akazewong\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=kazewong\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-kazewong\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-kazewong\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-kazewong\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-kazewong\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Akazewong\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-kazewong\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-kazewong\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChrisRackauckas\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2d5ff9f128e1.png\" width=\"50px;\" alt=\"Christopher Rackauckas\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Rackauckas\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AChrisRackauckas\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ChrisRackauckas\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#plugin-ChrisRackauckas\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-ChrisRackauckas\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-ChrisRackauckas\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#promotion-ChrisRackauckas\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AChrisRackauckas\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-ChrisRackauckas\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#tool-ChrisRackauckas\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ChrisRackauckas\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-ChrisRackauckas\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fkidger.site\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_a5d56fa4501c.png\" width=\"50px;\" alt=\"Patrick Kidger\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Patrick Kidger\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Apatrick-kidger\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#plugin-patrick-kidger\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-patrick-kidger\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-patrick-kidger\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-patrick-kidger\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Apatrick-kidger\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-patrick-kidger\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#tool-patrick-kidger\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-patrick-kidger\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOkonSamuel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_318f1d3b1097.png\" width=\"50px;\" alt=\"Okon Samuel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Okon Samuel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AOkonSamuel\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#maintenance-OkonSamuel\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#ideas-OkonSamuel\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-OkonSamuel\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AOkonSamuel\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-OkonSamuel\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fw2ll2am\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_fb3b98a9ea03.png\" width=\"50px;\" alt=\"William Booth-Clibborn\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>William Booth-Clibborn\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#example-w2ll2am\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#userTesting-w2ll2am\" title=\"User Testing\">📓\u003C\u002Fa> \u003Ca href=\"#maintenance-w2ll2am\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Aw2ll2am\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-w2ll2am\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fpablo-lemos.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_9c02929a8338.png\" width=\"50px;\" alt=\"Pablo Lemos\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pablo Lemos\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3APablo-Lemos\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-Pablo-Lemos\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-Pablo-Lemos\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3APablo-Lemos\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-Pablo-Lemos\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-Pablo-Lemos\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMoelf\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8bfec3d8c66a.png\" width=\"50px;\" alt=\"Jerry Ling\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jerry Ling\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AMoelf\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=Moelf\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=Moelf\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-Moelf\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"#ideas-Moelf\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-Moelf\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AMoelf\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-Moelf\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCharFox1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_06ddda819a7a.png\" width=\"50px;\" alt=\"Charles Fox\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Charles Fox\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3ACharFox1\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=CharFox1\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-CharFox1\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-CharFox1\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-CharFox1\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3ACharFox1\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-CharFox1\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-CharFox1\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjohannbrehmer\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8802aa0047a3.png\" width=\"50px;\" alt=\"Johann Brehmer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Johann Brehmer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-johannbrehmer\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-johannbrehmer\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ajohannbrehmer\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-johannbrehmer\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-johannbrehmer\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"http:\u002F\u002Fwww.cosmicmar.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c39746afcc13.png\" width=\"50px;\" alt=\"Marius Millea\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Marius Millea\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=marius311\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-marius311\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-marius311\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amarius311\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-marius311\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgitlab.com\u002Fcobac\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_de520cc09add.png\" width=\"50px;\" alt=\"Coba\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Coba\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Acobac\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=cobac\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-cobac\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Acobac\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-cobac\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffoxtran\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_71433834fed8.png\" width=\"50px;\" alt=\"foxtran\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>foxtran\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=foxtran\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-foxtran\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-foxtran\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#tool-foxtran\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"#userTesting-foxtran\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fsmhasan.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7b81ae76d3f7.png\" width=\"50px;\" alt=\"Shah Mahdi Hasan \"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Shah Mahdi Hasan \u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Atanweer-mahdi\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tanweer-mahdi\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Atanweer-mahdi\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-tanweer-mahdi\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpitmonticone\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e0575dafd6a8.png\" width=\"50px;\" alt=\"Pietro Monticone\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pietro Monticone\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Apitmonticone\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=pitmonticone\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-pitmonticone\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsheevy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_61e5040e0a4e.png\" width=\"50px;\" alt=\"Mateusz Kubica\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mateusz Kubica\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=sheevy\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-sheevy\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fjaywadekar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7322545960f6.png\" width=\"50px;\" alt=\"Jay Wadekar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jay Wadekar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AJayWadekar\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-JayWadekar\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-JayWadekar\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#research-JayWadekar\" title=\"Research\">🔬\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fablaom\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e017a2a65423.png\" width=\"50px;\" alt=\"Anthony Blaom, PhD\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Anthony Blaom, PhD\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#infra-ablaom\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#ideas-ablaom\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Aablaom\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJgmedina95\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2bdd58ab2c4c.png\" width=\"50px;\" alt=\"Jgmedina95\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jgmedina95\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AJgmedina95\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-Jgmedina95\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AJgmedina95\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmcabbott\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2d81f5491257.png\" width=\"50px;\" alt=\"Michael Abbott\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michael Abbott\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mcabbott\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-mcabbott\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amcabbott\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-mcabbott\" title=\"Tools\">🔧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foscardssmith\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_ccae67b63b41.png\" width=\"50px;\" alt=\"Oscar Smith\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Oscar Smith\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=oscardssmith\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-oscardssmith\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fericphanson.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e23e8f195b05.png\" width=\"50px;\" alt=\"Eric Hanson\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eric Hanson\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-ericphanson\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-ericphanson\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#userTesting-ericphanson\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhenriquebecker91\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8220730897fd.png\" width=\"50px;\" alt=\"Henrique Becker\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Henrique Becker\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=henriquebecker91\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-henriquebecker91\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ahenriquebecker91\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fqwertyjl\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_5e96392f4294.png\" width=\"50px;\" alt=\"qwertyjl\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>qwertyjl\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Aqwertyjl\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=qwertyjl\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-qwertyjl\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#userTesting-qwertyjl\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fhuijzer.xyz\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e9d1448a027d.png\" width=\"50px;\" alt=\"Rik Huijzer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Rik Huijzer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-rikhuijzer\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-rikhuijzer\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGCaptainNemo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_adaeef2350ec.png\" width=\"50px;\" alt=\"Hongyu Wang\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Hongyu Wang\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-GCaptainNemo\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-GCaptainNemo\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#research-GCaptainNemo\" title=\"Research\">🔬\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZehaoJin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c87f2c3d4ca5.png\" width=\"50px;\" alt=\"Zehao Jin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Zehao Jin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-ZehaoJin\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-ZehaoJin\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftmengel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_27e1e89ba04e.png\" width=\"50px;\" alt=\"Tanner Mengel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Tanner Mengel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-tmengel\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-tmengel\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fagrundner24\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_65c31c521b21.png\" width=\"50px;\" alt=\"Arthur Grundner\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Arthur Grundner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-agrundner24\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-agrundner24\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsjwetzel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7fba20baab1a.png\" width=\"50px;\" alt=\"sjwetzel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>sjwetzel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-sjwetzel\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-sjwetzel\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#userTesting-sjwetzel\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fsauravmaheshkar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_d0f5c59ccd1b.png\" width=\"50px;\" alt=\"Saurav Maheshkar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Saurav Maheshkar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#tool-SauravMaheshkar\" title=\"Tools\">🔧\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n","[\u002F\u002F]: # (Logo:)\n\n\u003Cdiv align=\"center\">\n\nPySR 寻找能够优化特定目标的符号表达式。\n\nhttps:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fassets\u002F7593028\u002Fc8511a49-b408-488f-8f18-b1749078268f\n\n\n# PySR：Python 和 Julia 中的高性能符号回归\n\n| **文档** | **论坛** | **论文** | **Colab 示例** |\n|:---:|:---:|:---:|:---:|\n|[![文档](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002Fdocs.yml\u002Fbadge.svg)](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002F)|[![讨论](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscussions-github-informational)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fdiscussions)|[![论文](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2305.01582-b31b1b)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582)|[![Colab](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcolab-notebook-yellow)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002Fexamples\u002Fpysr_demo.ipynb)|\n\n| **pip** | **conda** | **统计信息** |\n| :---: | :---: | :---: |\n|[![PyPI 版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpysr.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpysr)|[![Conda 版本](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpysr.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr)|\u003Cdiv align=\"center\">pip: [![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_3e1e515a4baf.png)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fpysr\u002F)\u003Cbr>conda: [![Anaconda 服务器徽章](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr\u002Fbadges\u002Fdownloads.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpysr)\u003C\u002Fdiv>|\n\n\u003C\u002Fdiv>\n\n如果您觉得 PySR 很有用，请引用论文 [arXiv:2305.01582](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582)。\n如果您已经使用 PySR 完成了某个项目，请提交 PR，在 [研究展示页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fpapers) 上分享您的成果！\n\n**目录**：\n\n- [为什么选择 PySR？](#why-pysr)\n- [安装](#installation)\n- [快速入门](#quickstart)\n- [→ 文档](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr)\n- [贡献者](#contributors-)\n\n\u003Cdiv align=\"center\">\n\n### 测试状态\n\n| **Linux** | **Windows** | **macOS** |\n|---|---|---|\n|[![Linux](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI.yml)|[![Windows](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_Windows.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_Windows.yml)|[![macOS](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_mac.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_mac.yml)|\n| **Docker** | **Conda** | **覆盖率** |\n|[![Docker](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_docker.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_docker.yml)|[![conda-forge](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_conda_forge.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Factions\u002Fworkflows\u002FCI_conda_forge.yml)|[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FMilesCranmer\u002FPySR\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FMilesCranmer\u002FPySR)|\n\n\u003C\u002Fdiv>\n\n## 为什么选择 PySR？\n\nPySR 是一款用于 *符号回归* 的开源工具：这是一种机器学习任务，其目标是找到一个可解释的符号表达式，以优化某个目标函数。\n\n在数年的时间里，PySR 从零开始设计，旨在做到（1）尽可能高效，（2）尽可能灵活可配置，以及（3）易于使用。PySR 与 Julia 库 [SymbolicRegression.jl](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl) 联合开发，后者构成了 PySR 强大的搜索引擎。这些算法的详细内容已在 [PySR 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.01582) 中阐述。\n\n符号回归最适合低维数据集，但也可以通过“神经网络符号蒸馏”将其扩展到高维空间，如 [2006.11287](https:\u002F\u002Farxiv.org\u002Fabs\u002F2006.11287) 所述，我们将其应用于 N 体问题。本质上，这种方法利用符号回归将神经网络转换为解析方程。因此，这些工具同时提供了一种明确而强大的方式来解释深度神经网络。\n\n## 安装\n\n### pip\n\n您可以通过 pip 安装 PySR：\n\n```bash\npip install pysr\n```\n\nJulia 的依赖项将在首次导入时自动安装。\n\n### conda\n\n同样地，使用 conda：\n\n```bash\nconda install -c conda-forge pysr\n```\n\n\u003Cdetails>\n\u003Csummary>\n\n### Docker\n\n\u003C\u002Fsummary>\n\n您还可以使用 `Dockerfile` 在 Docker 容器中安装 PySR。\n\n1. 克隆此仓库。\n2. 在仓库目录下构建 Docker 容器：\n```bash\ndocker build -t pysr .\n```\n3. 然后可以启动容器并运行 IPython：\n```bash\ndocker run -it --rm pysr ipython\n```\n\n更多详情请参阅 [Docker 部分](#docker)。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### Apptainer\n\n\u003C\u002Fsummary>\n\n如果您在没有 root 权限的集群上使用 PySR，可以使用 [Apptainer](https:\u002F\u002Fapptainer.org\u002F) 构建容器，而不是 Docker。`Apptainer.def` 文件类似于 `Dockerfile`，可以通过以下命令构建：\n\n```bash\napptainer build --notest pysr.sif Apptainer.def\n```\n\n然后使用以下命令运行：\n\n```bash\napptainer run pysr.sif\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### 故障排除\n\n\u003C\u002Fsummary>\n\n您可能会遇到的一个问题是，在导入时出现类似“`GLIBCXX_...` 未找到”的严重错误。这是由于另一个 Python 依赖项加载了错误的 `libstdc++` 库所致。要解决这个问题，您需要修改 `LD_LIBRARY_PATH` 变量，使其指向 Julia 的库文件。例如，如果 Julia 版本的 `libstdc++.so` 位于 `$HOME\u002F.julia\u002Fjuliaup\u002Fjulia-1.10.0+0.x64.linux.gnu\u002Flib\u002Fjulia\u002F`（这可能因系统而异！），您可以将以下内容添加到 `.bashrc` 或 `.zshrc` 文件中：\n\n```\nexport LD_LIBRARY_PATH=$HOME\u002F.julia\u002Fjuliaup\u002Fjulia-1.10.0+0.x64.linux.gnu\u002Flib\u002Fjulia\u002F:$LD_LIBRARY_PATH\n```\n\n\u003C\u002Fdetails>\n\n## 快速入门\n\n您可以尝试这里的交互式教程 [这里](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002Fexamples\u002Fpysr_demo.ipynb)，它使用了 `examples\u002Fpysr_demo.ipynb` 中的笔记本。\n\n在实际操作中，我强烈建议使用 IPython 而不是 Jupyter，因为它的输出效果更好。下面是一个快速演示，您可以将其粘贴到 Python 运行环境中。\n\n首先，我们导入 numpy 来生成一些测试数据：\n\n```python\nimport numpy as np\n\nX = 2 * np.random.randn(100, 5)\ny = 2.5382 * np.cos(X[:, 3]) + X[:, 0] ** 2 - 0.5\n```\n\n我们创建了一个包含 100 个样本、每个样本有 5 个特征的数据集。我们希望建模的关系是 $2.5382 \\cos(x_3) + x_0^2 - 0.5$。\n\n现在，让我们创建一个 PySR 模型并进行训练。PySR 的主要接口风格类似于 scikit-learn：\n\n```python\nfrom pysr import PySRRegressor\n\nmodel = PySRRegressor(\n    maxsize=20,\n    niterations=40,  # \u003C 增加此值以获得更好的结果\n    binary_operators=[\"+\", \"*\"],\n    unary_operators=[\n        \"cos\",\n        \"exp\",\n        \"sin\",\n        \"inv(x) = 1\u002Fx\",\n        # ^ 自定义运算符（Julia 语法）\n    ],\n    extra_sympy_mappings={\"inv\": lambda x: 1 \u002F x},\n    # ^ 同时为 SymPy 定义运算符\n    elementwise_loss=\"loss(prediction, target) = (prediction - target)^2\",\n    # ^ 自定义损失函数（Julia 语法）\n)\n```\n\n这将设置模型进行 40 次迭代的搜索，每次迭代包含数十万次突变和方程评估。\n\n让我们用我们的数据集来训练这个模型：\n\n```python\nmodel.fit(X, y)\n```\n\n在内部，这会启动一个 Julia 进程，该进程将以多线程方式搜索适合数据集的方程。\n\n训练过程中会打印出方程，当您满意时，可以通过按 'q' 然后按回车键提前退出。\n\n模型拟合完成后，您可以运行 `model.predict(X)` 来查看使用自动选择的表达式对给定数据集的预测结果；或者例如，运行 `model.predict(X, 3)` 来查看第 3 个方程的预测结果。\n\n您还可以运行以下命令来打印学习到的方程：\n\n```python\nprint(model)\n```\n\n输出如下：\n\n```python\nPySRRegressor.equations_ = [\n\t   pick     score                                           equation       loss  complexity\n\t0        0.000000                                          4.4324794  42.354317           1\n\t1        1.255691                                          (x0 * x0)   3.437307           3\n\t2        0.011629                          ((x0 * x0) + -0.28087974)   3.358285           5\n\t3        0.897855                              ((x0 * x0) + cos(x3))   1.368308           6\n\t4        0.857018                ((x0 * x0) + (cos(x3) * 2.4566472))   0.246483           8\n\t5  >>>>       inf  (((cos(x3) + -0.19699033) * 2.5382123) + (x0 *...   0.000000          10\n]\n```\n\n`pick` 列中的箭头表示当前由您的 `model_selection` 策略选定用于预测的方程。（您也可以在 `.fit(X, y)` 之后更改 `model_selection`。）\n\n`model.equations_` 是一个 pandas DataFrame，包含了所有方程，包括可调用格式 (`lambda_format`)、SymPy 格式 (`sympy_format` - 您也可以通过 `model.sympy()` 获取）、甚至 JAX 和 PyTorch 格式（两者都可微分 - 您可以通过 `model.jax()` 和 `model.pytorch()` 获取）。\n\n请注意，`PySRRegressor` 会保存上次搜索的状态，并在您下次调用 `.fit()` 时从上次停止的地方继续，前提是您已设置 `warm_start=True`。如果对搜索参数进行了重大更改（例如更改运算符），则可能会出现问题。您可以运行 `model.reset()` 来重置状态。\n\n您会注意到 PySR 会保存两个文件：`hall_of_fame...csv` 和 `hall_of_fame...pkl`。CSV 文件列出了方程及其损失，而 PKL 文件则是模型的保存状态。您可以从 PKL 文件加载模型，方法如下：\n\n```python\nmodel = PySRRegressor.from_file(\"hall_of_fame.2022-08-10_100832.281.pkl\")\n```\n\n此外，PySR 还提供了其他一些有用的功能，例如去噪（如 `denoise=True`）和特征选择（如 `select_k_features=3`）。有关这些功能及其他功能的示例，请参阅 [示例页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fexamples)。有关更多选项的详细信息，请参阅 [选项页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Foptions)。您还可以在 [API 页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fapi) 上查看完整的 API。此外，[调优页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Ftuning) 提供了调整 PySR 的技巧。\n\n### 详细示例\n\n以下代码尽可能地使用了 PySR 的所有功能。请注意，这只是一个功能演示，您不应直接使用此示例。有关每个参数的具体作用，请参阅 [API 页面](https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002Fapi\u002F)。\n\n```python\nmodel = PySRRegressor(\n    populations=8,\n    # ^ 假设我们有4个核心，这意味着每个核心运行2个种群，因此总有一个种群在持续运行。\n    population_size=50,\n    # ^ 稍大的种群规模，以增加多样性。\n    ncycles_per_iteration=500,\n    # ^ 种群之间迁移的代数间隔。\n    niterations=10000000,  # 无限运行\n    early_stop_condition=(\n        \"stop_if(loss, complexity) = loss \u003C 1e-6 && complexity \u003C 10\"\n        # 如果找到一个既好又简单的方程，则提前停止\n    ),\n    timeout_in_seconds=60 * 60 * 24,\n    # ^ 或者，在24小时后停止。\n    maxsize=50,\n    # ^ 允许更高的复杂度。\n    maxdepth=10,\n    # ^ 但避免过深的嵌套。\n    binary_operators=[\"*\", \"+\", \"-\", \"\u002F\"],\n    unary_operators=[\"square\", \"cube\", \"exp\", \"cos2(x)=cos(x)^2\"],\n    constraints={\n        \"\u002F\": (-1, 9),\n        \"square\": 9,\n        \"cube\": 9,\n        \"exp\": 9,\n    },\n    # ^ 限制每个参数内的复杂度。\n    # \"inv\": (-1, 9) 表示分子没有约束，\n    # 但分母的最大复杂度为9。\n    # \"exp\": 9 则表示 `exp` 只能接受复杂度为9的表达式作为输入。\n    nested_constraints={\n        \"square\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n        \"cube\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n        \"exp\": {\"square\": 1, \"cube\": 1, \"exp\": 0},\n    },\n    # ^ 对运算符进行嵌套约束。例如，\n    # \"square(exp(x))\" 是不允许的，因为 \"square\": {\"exp\": 0}。\n    complexity_of_operators={\"\u002F\": 2, \"exp\": 3},\n    # ^ 自定义特定运算符的复杂度。\n    complexity_of_constants=2,\n    # ^ 惩罚常数比变量更重。\n    select_k_features=4,\n    # ^ 只使用最重要的4个特征进行训练。\n    progress=True,\n    # ^ 如果输出到文件，可以设置为False。\n    weight_randomize=0.1,\n    # ^ 更频繁地随机化树结构。\n    cluster_manager=None,\n    # ^ 可以设置为例如 \"slurm\" 来运行 slurm 集群。只需从主节点启动一个脚本即可。\n    precision=64,\n    # ^ 使用更高精度的计算。\n    warm_start=True,\n    # ^ 从上次中断的地方继续。\n    turbo=True,\n    # ^ 更快的评估（实验性）\n    extra_sympy_mappings={\"cos2\": lambda x: sympy.cos(x)**2},\n    # extra_torch_mappings={sympy.cos: torch.cos},\n    # ^ 这里不需要，因为 cos 已经定义，但这正是定义自定义 PyTorch 运算符的方式。\n    # extra_jax_mappings={sympy.cos: \"jnp.cos\"},\n    # ^ 对于 JAX，需要传递字符串。\n)\n```\n\n### Docker\n\n您也可以在 Docker 中测试 PySR，而无需在本地安装它。只需在本仓库的根目录下运行以下命令：\n\n```bash\ndocker build -t pysr .\n```\n\n这将为您的系统架构构建一个名为 `pysr` 的镜像，其中还包含 IPython。您可以选择特定版本的 Python 和 Julia，方法如下：\n\n```bash\ndocker build -t pysr --build-arg JLVERSION=1.10.0 --build-arg PYVERSION=3.11.6 .\n```\n\n然后，您可以使用以下 Dockerfile 运行容器：\n\n```bash\ndocker run -it --rm -v \"$PWD:\u002Fdata\" pysr ipython\n```\n\n这会将当前目录挂载到容器的 `\u002Fdata` 目录，并启动 IPython。\n\n如果您在构建适用于您系统架构的镜像时遇到问题，可以在 `build` 和 `run` 命令前添加 `--platform linux\u002Famd64` 来模拟其他架构。\n\n\u003Cdiv align=\"center\">\n\n### 贡献者 ✨\n\n\u003C\u002Fdiv>\n\n我们热忱欢迎新贡献者！请查看我们的贡献者 [指南](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fblob\u002Fmaster\u002FCONTRIBUTORS.md)，获取实用建议 🚀。如果您对新功能有任何想法，请随时在 [issues](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues) 或 [discussions](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fdiscussions) 页面上分享。\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmarkkittisopikul\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_33a25e0f2755.png\" width=\"50px;\" alt=\"Mark Kittisopikul\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mark Kittisopikul\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mkitti\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-mkitti\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-mkitti\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-mkitti\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#promotion-mkitti\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amkitti\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-mkitti\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mkitti\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftttc3\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_9dce20a0e300.png\" width=\"50px;\" alt=\"T Coxon\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>T Coxon\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Atttc3\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tttc3\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#plugin-tttc3\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-tttc3\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-tttc3\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-tttc3\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Atttc3\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-tttc3\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tttc3\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-tttc3\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDhananjayAshok\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_dd571b3d8b39.png\" width=\"50px;\" alt=\"Dhananjay Ashok\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Dhananjay Ashok\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=DhananjayAshok\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#example-DhananjayAshok\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"#ideas-DhananjayAshok\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-DhananjayAshok\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=DhananjayAshok\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgitlab.com\u002Fjohanbluecreek\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_481372e4bdb2.png\" width=\"50px;\" alt=\"Johan Blåbäck\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Johan Blåbäck\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Ajohanbluecreek\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johanbluecreek\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-johanbluecreek\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-johanbluecreek\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-johanbluecreek\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ajohanbluecreek\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johanbluecreek\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-johanbluecreek\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fmathopt.de\u002Fpeople\u002Fmartensen\u002Findex.php\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7971a402ac6d.png\" width=\"50px;\" alt=\"JuliusMartensen\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>JuliusMartensen\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AAlCap23\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=AlCap23\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=AlCap23\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#plugin-AlCap23\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-AlCap23\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-AlCap23\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-AlCap23\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#platform-AlCap23\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"#promotion-AlCap23\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AAlCap23\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-AlCap23\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"#userTesting-AlCap23\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fngam\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_dcb91489b8aa.png\" width=\"50px;\" alt=\"ngam\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>ngam\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ngam\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#infra-ngam\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-ngam\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Angam\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-ngam\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ngam\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fcjdoris.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c6db70eaae38.png\" width=\"50px;\" alt=\"Christopher Rowley\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Rowley\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=cjdoris\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-cjdoris\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-cjdoris\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#platform-cjdoris\" title=\"Packaging\u002Fporting to new platform\">📦\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Acjdoris\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkazewong\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_401690b1fee5.png\" width=\"50px;\" alt=\"Kaze Wong\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Kaze Wong\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Akazewong\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=kazewong\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-kazewong\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-kazewong\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#maintenance-kazewong\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-kazewong\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Akazewong\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-kazewong\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-kazewong\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChrisRackauckas\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2d5ff9f128e1.png\" width=\"50px;\" alt=\"Christopher Rackauckas\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Christopher Rackauckas\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AChrisRackauckas\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ChrisRackauckas\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#plugin-ChrisRackauckas\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-ChrisRackauckas\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-ChrisRackauckas\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#promotion-ChrisRackauckas\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AChrisRackauckas\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-ChrisRackauckas\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#tool-ChrisRackauckas\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=ChrisRackauckas\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-ChrisRackauckas\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fkidger.site\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_a5d56fa4501c.png\" width=\"50px;\" alt=\"Patrick Kidger\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Patrick Kidger\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Apatrick-kidger\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#plugin-patrick-kidger\" title=\"Plugin\u002Futility libraries\">🔌\u003C\u002Fa> \u003Ca href=\"#ideas-patrick-kidger\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-patrick-kidger\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-patrick-kidger\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Apatrick-kidger\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-patrick-kidger\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#tool-patrick-kidger\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=patrick-kidger\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-patrick-kidger\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOkonSamuel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_318f1d3b1097.png\" width=\"50px;\" alt=\"Okon Samuel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Okon Samuel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AOkonSamuel\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#maintenance-OkonSamuel\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#ideas-OkonSamuel\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-OkonSamuel\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AOkonSamuel\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=OkonSamuel\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-OkonSamuel\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fw2ll2am\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_fb3b98a9ea03.png\" width=\"50px;\" alt=\"William Booth-Clibborn\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>William Booth-Clibborn\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#example-w2ll2am\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#userTesting-w2ll2am\" title=\"User Testing\">📓\u003C\u002Fa> \u003Ca href=\"#maintenance-w2ll2am\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Aw2ll2am\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-w2ll2am\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=w2ll2am\" title=\"Tests\">⚠️\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fpablo-lemos.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_9c02929a8338.png\" width=\"50px;\" alt=\"Pablo Lemos\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pablo Lemos\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3APablo-Lemos\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-Pablo-Lemos\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-Pablo-Lemos\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3APablo-Lemos\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-Pablo-Lemos\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-Pablo-Lemos\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMoelf\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8bfec3d8c66a.png\" width=\"50px;\" alt=\"Jerry Ling\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jerry Ling\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AMoelf\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=Moelf\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=Moelf\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#example-Moelf\" title=\"Examples.\">🌍\u003C\u002Fa> \u003Ca href=\"#ideas-Moelf\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-Moelf\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AMoelf\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-Moelf\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCharFox1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_06ddda819a7a.png\" width=\"50px;\" alt=\"Charles Fox\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Charles Fox\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3ACharFox1\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=CharFox1\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-CharFox1\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-CharFox1\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#promotion-CharFox1\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3ACharFox1\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-CharFox1\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#userTesting-CharFox1\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjohannbrehmer\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8802aa0047a3.png\" width=\"50px;\" alt=\"Johann Brehmer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Johann Brehmer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-johannbrehmer\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-johannbrehmer\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ajohannbrehmer\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#research-johannbrehmer\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=johannbrehmer\" title=\"Tests\">⚠️\u003C\u002Fa> \u003Ca href=\"#userTesting-johannbrehmer\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"http:\u002F\u002Fwww.cosmicmar.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c39746afcc13.png\" width=\"50px;\" alt=\"Marius Millea\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Marius Millea\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=marius311\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-marius311\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-marius311\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amarius311\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-marius311\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgitlab.com\u002Fcobac\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_de520cc09add.png\" width=\"50px;\" alt=\"Coba\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Coba\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Acobac\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=cobac\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-cobac\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Acobac\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-cobac\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffoxtran\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_71433834fed8.png\" width=\"50px;\" alt=\"foxtran\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>foxtran\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=foxtran\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-foxtran\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#maintenance-foxtran\" title=\"Maintenance\">🚧\u003C\u002Fa> \u003Ca href=\"#tool-foxtran\" title=\"Tools\">🔧\u003C\u002Fa> \u003Ca href=\"#userTesting-foxtran\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fsmhasan.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7b81ae76d3f7.png\" width=\"50px;\" alt=\"Shah Mahdi Hasan \"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Shah Mahdi Hasan \u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Atanweer-mahdi\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=tanweer-mahdi\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Atanweer-mahdi\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#userTesting-tanweer-mahdi\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpitmonticone\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e0575dafd6a8.png\" width=\"50px;\" alt=\"Pietro Monticone\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Pietro Monticone\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Apitmonticone\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=pitmonticone\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-pitmonticone\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsheevy\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_61e5040e0a4e.png\" width=\"50px;\" alt=\"Mateusz Kubica\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Mateusz Kubica\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=sheevy\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-sheevy\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fjaywadekar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7322545960f6.png\" width=\"50px;\" alt=\"Jay Wadekar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jay Wadekar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AJayWadekar\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-JayWadekar\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-JayWadekar\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#research-JayWadekar\" title=\"Research\">🔬\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fablaom\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e017a2a65423.png\" width=\"50px;\" alt=\"Anthony Blaom, PhD\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Anthony Blaom, PhD\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#infra-ablaom\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa> \u003Ca href=\"#ideas-ablaom\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Aablaom\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJgmedina95\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2bdd58ab2c4c.png\" width=\"50px;\" alt=\"Jgmedina95\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Jgmedina95\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3AJgmedina95\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"#ideas-Jgmedina95\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3AJgmedina95\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmcabbott\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_2d81f5491257.png\" width=\"50px;\" alt=\"Michael Abbott\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michael Abbott\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=mcabbott\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-mcabbott\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Amcabbott\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#tool-mcabbott\" title=\"Tools\">🔧\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foscardssmith\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_ccae67b63b41.png\" width=\"50px;\" alt=\"Oscar Smith\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Oscar Smith\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=oscardssmith\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-oscardssmith\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fericphanson.com\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e23e8f195b05.png\" width=\"50px;\" alt=\"Eric Hanson\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eric Hanson\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-ericphanson\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-ericphanson\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#userTesting-ericphanson\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhenriquebecker91\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_8220730897fd.png\" width=\"50px;\" alt=\"Henrique Becker\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Henrique Becker\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=henriquebecker91\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"#ideas-henriquebecker91\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpulls?q=is%3Apr+reviewed-by%3Ahenriquebecker91\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fqwertyjl\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_5e96392f4294.png\" width=\"50px;\" alt=\"qwertyjl\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>qwertyjl\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues?q=author%3Aqwertyjl\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommits?author=qwertyjl\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"#ideas-qwertyjl\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#userTesting-qwertyjl\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fhuijzer.xyz\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_e9d1448a027d.png\" width=\"50px;\" alt=\"Rik Huijzer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Rik Huijzer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-rikhuijzer\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#infra-rikhuijzer\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGCaptainNemo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_adaeef2350ec.png\" width=\"50px;\" alt=\"Hongyu Wang\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Hongyu Wang\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-GCaptainNemo\" title=\"Ideas, planning, and feedback.\">💡\u003C\u002Fa> \u003Ca href=\"#promotion-GCaptainNemo\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#research-GCaptainNemo\" title=\"Research\">🔬\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZehaoJin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_c87f2c3d4ca5.png\" width=\"50px;\" alt=\"Zehao Jin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Zehao Jin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-ZehaoJin\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-ZehaoJin\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftmengel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_27e1e89ba04e.png\" width=\"50px;\" alt=\"Tanner Mengel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Tanner Mengel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-tmengel\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-tmengel\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fagrundner24\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_65c31c521b21.png\" width=\"50px;\" alt=\"Arthur Grundner\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Arthur Grundner\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-agrundner24\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-agrundner24\" title=\"Promotion\">📣\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsjwetzel\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_7fba20baab1a.png\" width=\"50px;\" alt=\"sjwetzel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>sjwetzel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#research-sjwetzel\" title=\"Research\">🔬\u003C\u002Fa> \u003Ca href=\"#promotion-sjwetzel\" title=\"Promotion\">📣\u003C\u002Fa> \u003Ca href=\"#userTesting-sjwetzel\" title=\"User Testing\">📓\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"12.5%\">\u003Ca href=\"https:\u002F\u002Fsauravmaheshkar.github.io\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_readme_d0f5c59ccd1b.png\" width=\"50px;\" alt=\"Saurav Maheshkar\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Saurav Maheshkar\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#tool-SauravMaheshkar\" title=\"Tools\">🔧\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->","# PySR 快速上手指南\n\nPySR 是一个高性能的符号回归（Symbolic Regression）工具，旨在从数据中发现可解释的数学表达式。它基于 Julia 的强大搜索引擎，同时提供 Python 风格的接口（类似 scikit-learn）。\n\n## 环境准备\n\n*   **操作系统**: Linux, macOS, Windows\n*   **Python 版本**: 建议 Python 3.8+\n*   **依赖说明**: \n    *   PySR 依赖 `numpy`, `pandas`, `sympy` 等常见 Python 库。\n    *   **Julia 环境**: 首次导入 PySR 时，它会自动下载并配置所需的 Julia 版本及 `SymbolicRegression.jl` 包，无需手动安装 Julia。\n*   **硬件建议**: 支持多线程并行搜索，多核 CPU 能显著提升发现公式的速度。\n\n## 安装步骤\n\n你可以选择 `pip` 或 `conda` 进行安装。国内用户若遇到下载慢的问题，可配置相应的镜像源。\n\n### 方式一：使用 pip 安装\n\n```bash\npip install pysr\n```\n\n*国内加速建议*:\n```bash\npip install pysr -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：使用 conda 安装\n\n```bash\nconda install -c conda-forge pysr\n```\n\n*国内加速建议 (使用清华\u002F中科大镜像)*:\n```bash\nconda config --add channels https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fcloud\u002Fconda-forge\u002F\nconda config --set show_channel_urls yes\nconda install pysr\n```\n\n> **注意**: 安装完成后，第一次在 Python 中 `import pysr` 时会自动触发 Julia 环境的初始化，请耐心等待下载完成。\n\n## 基本使用\n\nPySR 的使用流程与 `scikit-learn` 高度相似：定义模型 -> 拟合数据 -> 获取结果。\n\n### 1. 准备数据与定义模型\n\n以下示例生成一组测试数据，并配置 PySR 搜索包含加减乘除、三角函数和自定义算子的表达式。\n\n```python\nimport numpy as np\nfrom pysr import PySRRegressor\n\n# 1. 生成测试数据\n# 真实关系为: y = 2.5382 * cos(x_3) + x_0^2 - 0.5\nX = 2 * np.random.randn(100, 5)\ny = 2.5382 * np.cos(X[:, 3]) + X[:, 0] ** 2 - 0.5\n\n# 2. 定义模型\nmodel = PySRRegressor(\n    maxsize=20,          # 表达式最大复杂度\n    niterations=40,      # 迭代次数 (实际应用中建议增大此值以获得更好结果)\n    binary_operators=[\"+\", \"*\"],\n    unary_operators=[\n        \"cos\",\n        \"exp\",\n        \"sin\",\n        \"inv(x) = 1\u002Fx\",  # 自定义算子 (Julia 语法)\n    ],\n    extra_sympy_mappings={\"inv\": lambda x: 1 \u002F x}, # 为 SymPy 定义对应的 Python 映射\n    elementwise_loss=\"loss(prediction, target) = (prediction - target)^2\", # 自定义损失函数\n)\n```\n\n### 2. 训练模型\n\n调用 `fit` 方法启动搜索过程。底层会启动 Julia 进程进行多线程搜索。\n在训练过程中，终端会实时打印发现的方程。如需提前停止，可在终端按下 `q` 然后回车。\n\n```python\nmodel.fit(X, y)\n```\n\n### 3. 查看结果与预测\n\n训练完成后，可以查看发现的公式列表或直接进行预测。\n\n```python\n# 打印学习到的方程列表\nprint(model)\n\n# 使用自动选择的最佳方程进行预测\npredictions = model.predict(X)\n\n# 或者指定使用第 3 个发现的方程进行预测\npredictions_3 = model.predict(X, 3)\n```\n\n**输出示例解读**:\n`print(model)` 将输出一个表格，其中 `pick` 列带有 `>>>>` 标记的行表示当前被选中用于预测的最佳方程。表格还包含了方程的复杂度（complexity）和损失值（loss）。\n\n```text\nPySRRegressor.equations_ = [\n\t   pick     score                                           equation       loss  complexity\n\t0        0.000000                                          4.4324794  42.354317           1\n\t1        1.255691                                          (x0 * x0)   3.437307           3\n\t...\n\t5  >>>>       inf  (((cos(x3) + -0.19699033) * 2.5382123) + (x0 *...   0.000000          10\n]\n```\n\n### 进阶提示\n*   **断点续训**: PySR 会自动保存状态文件（`.pkl` 和 `.csv`）。下次运行 `fit` 时，若设置 `warm_start=True`（默认行为），将从上次中断处继续搜索。\n*   **格式导出**: 结果可导出为 SymPy (`model.sympy()`)、JAX (`model.jax()`) 或 PyTorch (`model.pytorch()`) 格式，便于后续微分或部署。\n*   **加载模型**: 可通过 `PySRRegressor.from_file(\"path\u002Fto\u002Ffile.pkl\")` 直接加载已训练好的模型。","某航天动力学研究团队正试图从海量的卫星轨道遥测数据中，反推描述天体引力相互作用的核心物理公式。\n\n### 没有 PySR 时\n- 研究人员只能依赖神经网络进行黑盒拟合，虽然预测精度尚可，但无法获得具有物理意义的解析表达式，导致模型不可解释。\n- 为了猜测正确的公式形式，团队需耗费数周时间手动尝试多项式、三角函数等组合，效率极低且极易陷入局部最优解。\n- 面对高维度的 N 体问题数据，传统符号回归算法计算速度缓慢，往往在找到可行解前就已耗尽计算资源。\n- 最终得到的复杂模型难以嵌入到现有的仿真系统中，工程师不得不花费大量精力进行二次简化，引入了额外误差。\n\n### 使用 PySR 后\n- PySR 直接搜索并输出了简洁的符号表达式（如牛顿万有引力定律变体），让物理学家能立即理解变量间的因果逻辑。\n- 依托其底层 Julia 引擎的高性能搜索策略，原本需要数周的公式发现过程被缩短至几小时，自动探索了更广阔的函数空间。\n- 通过“符号蒸馏”技术，PySR 成功将高精度神经网络的内部逻辑转化为显式方程，完美解决了高维数据的可解释性难题。\n- 生成的公式可直接导出为 Python 或 C 代码，无缝集成到实时轨道预测系统中，大幅提升了工程落地效率。\n\nPySR 将晦涩的数据拟合转变为可理解的物理发现，真正实现了从“预测结果”到“掌握规律”的跨越。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FMilesCranmer_PySR_c64d09a0.png","MilesCranmer","Miles Cranmer","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FMilesCranmer_5c5c94b5.jpg","Assistant Professor at University of Cambridge.\r\n\r\nWorks on AI for the physical sciences.","University of Cambridge","Cambridge, UK",null,"astroautomata.com","https:\u002F\u002Fgithub.com\u002FMilesCranmer",[82,86,90,94,98],{"name":83,"color":84,"percentage":85},"Python","#3572A5",97.2,{"name":87,"color":88,"percentage":89},"Dockerfile","#384d54",1.2,{"name":91,"color":92,"percentage":93},"Jupyter Notebook","#DA5B0B",0.8,{"name":95,"color":96,"percentage":97},"Shell","#89e051",0.6,{"name":99,"color":100,"percentage":101},"HCL","#844FBA",0.1,3463,320,"2026-04-06T20:11:37","Apache-2.0","Linux, Windows, macOS","未说明",{"notes":109,"python":107,"dependencies":110},"核心计算引擎依赖 Julia 语言，首次导入 Python 包时会自动安装 Julia 及相关依赖。支持通过 Docker 或 Apptainer 容器化运行。在 Linux 系统下若遇到 'GLIBCXX' 错误，需手动配置 LD_LIBRARY_PATH 指向 Julia 的库文件路径。算法主要针对低维数据集优化，也支持通过符号蒸馏处理高维数据。",[111,112,113,114,115],"numpy","pandas","sympy","juliacall","julia",[16,117,14],"其他",[119,120,121,115,122,123,124,125,126,127,128,129,130,131,132],"symbolic-regression","machine-learning","python","genetic-algorithm","automl","interpretable-ml","data-science","explainable-ai","scikit-learn","symbolic","algorithm","distributed-systems","evolutionary-algorithms","equation-discovery","2026-03-27T02:49:30.150509","2026-04-07T13:27:27.038734",[136,141,146,151,156,160],{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},22107,"为什么在运行 PySR 时会遇到 'Couldn't find equation file!' 错误？","这通常意味着方程搜索在完成第一次迭代之前就退出了。常见原因包括：1. 多进程模式下（procs>0），Julia 进程因错误提前关闭，导致输出延迟打印；2. 用户手动中断（如按 Ctrl-C）导致进程未正常关闭。解决方法：可以在命令行运行 `pkill julia` 来关闭挂起的 Julia 进程，然后重试。如果问题频繁出现，请检查是否是由于之前的运行残留导致的延迟报错。","https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F53",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},22108,"在 Linux (CentOS\u002FRHEL) 上安装 PySR 时遇到 'GLIBCXX' 版本不匹配或 libstdc++ 找不到怎么办？","这个问题通常发生在系统默认的 GCC 版本过旧（如 GCC 4.8.5），而安装了较新版本的编译器（如通过 Software Collections 安装的 GCC 8+）时。PySR 安装程序可能错误地链接了系统的旧版 libstdc++。解决方法是确保在安装时环境变量正确指向了新编译器的库路径。可以尝试导出 LD_LIBRARY_PATH 或在激活新编译器环境后重新运行 `python3 -m pysr install`。该问题已在后续版本中修复，建议升级 PySR。","https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F347",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},22109,"遇到 'Unsatisfiable requirements detected for package DynamicExpressions' Julia 包依赖错误如何解决？","这通常是由于现有的 Julia 环境中有冲突的包版本，或者之前通过 conda 安装的 Julia 环境与 pip 安装的 PySR 不兼容。推荐的解决方案是：创建一个新的、干净的 Conda 虚拟环境，并在其中重新安装 PySR 和 Julia。避免在已有的、包含旧版 Julia 包的环境中直接升级。对于 macOS 用户，在新建的 Conda 环境中安装通常能解决此问题。","https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F234",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},22110,"如何处理涉及极大数值（如 Goedel 数）导致的 Inf 或 NaN 损失问题？","当输入数据超出 Float64 的表示范围时，会出现 Inf 或 NaN。虽然用户可能尝试修改本地代码使用 BigFloat，但标准版 PySR 默认不使用 BigFloat。如果遇到此问题，首先确认是否意外修改了本地副本。如果是标准安装，目前官方版本主要优化于 Float64。对于极大的整数运算，可能需要预处理数据（如取对数）将其缩放到 Float64 可处理的范围，或者等待官方对任意精度算术的原生支持。注意：不要随意修改源码转换类型，除非你清楚如何恢复（可通过 `pip install -U pysr` 恢复原版）。","https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F236",{"id":157,"question_zh":158,"answer_zh":159,"source_url":155},22111,"在 Jupyter Notebook 中运行 PySR 时出现关于进度条和 Julia 线程的警告，这意味着什么？","这些通常是信息性警告，不影响运行。'Progress bar will be turned off' 是因为 Jupyter 环境下无法显示标准进度条，属正常现象。'Julia has already started... options will be ignored' 表示 Julia 内核已经启动，新的线程设置（如 threads=16）将被忽略，沿用之前的设置。如果需要更改线程数，请重启 Jupyter 内核后再运行代码，确保 Julia 以新参数启动。",{"id":161,"question_zh":162,"answer_zh":163,"source_url":140},22112,"PySR 安装后无法找到方程文件，是否可能是因为多进程设置不当？","是的。如果设置了 `procs > 0` 启用多进程，但 Julia 进程在运行初期崩溃或被强制终止，主进程可能无法捕获方程文件。错误信息有时会延迟显示，让人误以为是当前运行的错误，实则是上一次未干净退出的进程产生的。解决方法包括：检查 `procs` 设置，尝试设为 1 单进程运行以排查问题；或在终端执行 `pkill julia` 清理所有残留的 Julia 进程后重试。",[165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260],{"id":166,"version":167,"summary_zh":168,"released_at":169},135817,"v1.5.10","## [1.5.10](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.9...v1.5.10) (2026-03-30)\n\n\n### 错误修复\n\n* **ci:** 后向移植 release-v1 的 CI 修复 ([#1164](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F1164)) ([704b61f](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommit\u002F704b61f3c327e7303f94c8ee761f3879f46c994e))\n* **deps:** 允许 pandas &lt;4.0.0 ([#1160](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fissues\u002F1160)) ([111ace9](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcommit\u002F111ace987c637b00c3197d01f5d293bd2d8d6de0))","2026-03-30T16:02:08",{"id":171,"version":172,"summary_zh":173,"released_at":174},135818,"v2.0.0a1","这是 v2.0.0 的 _alpha_ 版本。在 v2.0.0 正式发布之前，仍会有变动，很可能包括新的超参数默认值。\n\n## 变更内容\n\n### 重大变更\n\n#### 多项功能（后端更新至 2.0）([#999](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F999))\n\n此 PR 将后端更新至 SymbolicRegression.jl 2.0.0-alpha.8，并引入了多项重要新特性：\n\n- **N 元运算符**：支持任意元数的运算符（不仅限于一元或二元）\n  - 新增三元运算符：`fma`（融合乘加）、`clamp` 等。\n  - 可通过新的 `operators` 参数字典来使用：`operators={1: [\"sin\"], 2: [\"+\", \"*\"], 3: [\"clamp\"]}`\n- **方程猜测**：通过 `fit` 函数的 `guesses` 参数传递初始方程猜测，以引导搜索\n  - 例如：`guesses=[\"sin(x0 * 2.1 - 0.5)\", \"x0 * 3.0 + x2\"]` 提供两个猜测\n  - 使用 `fraction_replaced_guesses` 控制猜测的注入比例\n- **高级自动微分后端**：实验性支持 Mooncake.jl 和 Enzyme.jl\n  - 通过 `autodiff_backend=\"Enzyme\"` 启用 Enzyme.jl 支持（目前仍不稳定，处于实验阶段）\n  - Mooncake.jl（实验性——当前因上游修复问题而禁用）\n- **特征节点变异**：新增一种直接修改所用特征的变异算子\n  - 使用 `weight_mutate_feature` 控制变异权重\n- **工作进程管理**：\n  - `worker_imports`：指定在工作进程中导入的 Julia 包\n  - `worker_timeout`：控制工作进程的超时时间\n\n#### **大数据自动批处理** ([#1045](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1045))\n\n### 其他变更\n\n* 文档：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1041 中添加向量表达式示例\n* [pre-commit.ci] 由 @pre-commit-ci[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1008 中自动更新 pre-commit 配置\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1009 中将 actions\u002Fcheckout 从版本 4 升级到 5\n* CI：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1022 中更新 Dockerfile 镜像\n* 测试：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1023 中更新 Docker 版本\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1027 中将 actions\u002Fsetup-python 从版本 5 升级到 6\n* 依赖：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1052 中将 Python 最低版本提升至 3.9\n* 依赖：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1035 中提高 juliacall 的版本要求\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1049 中将 actions\u002Fcheckout 从版本 4 升级到 5\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1050 中将 github\u002Fcodeql-action 从版本 3 升级到 4\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F1051 中将 actions\u002Fsetup-python 从版本 5 升级到 6\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull 中将 beartype 的版本要求从 \u003C0.22,>=0.19 更新为 >=0.19,\u003C0.23","2025-10-08T22:01:34",{"id":176,"version":177,"summary_zh":178,"released_at":179},135819,"v1.5.9","## 变更内容\n* [pre-commit.ci] 由 @pre-commit-ci[bot] 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F853 中自动更新 pre-commit 配置\n* @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F952 中修复了特征选择代码中的类型错误\n* 杂项（依赖）：将 juliacall 的版本要求从 \u003C0.9.26,>=0.9.24 更新为 >=0.9.24,\u003C0.9.27，由 @dependabot[bot] 完成，见 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F980\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.8...v1.5.9","2025-07-15T20:07:07",{"id":181,"version":182,"summary_zh":183,"released_at":184},135820,"v1.5.8","## 变更内容\n* 修复：通过移除 beartype 来兼容 Python 3.8，由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F935 中完成\n* CI：更新工作流以测试 3.13 版本，由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F929 中完成\n* 样式：修复警告中的换行问题，由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F931 中完成\n* CI：切换到 Codecov，由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F932 中完成\n* 依赖：修复本地 Conda 环境的版本问题，由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F933 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.7...v1.5.8","2025-05-20T15:59:19",{"id":186,"version":187,"summary_zh":188,"released_at":189},135821,"v1.5.7","## 变更内容\n* 由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F928 中启用负损失\n* 由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F920 中推荐使用 TemplateExpressionSpec 替代 ParametricExpressionSpec\n* 由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F921 中修复多输出模板表达式\n* 构建：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F888 中切换至 hatchling\n* 杂项（依赖）：由 @dependabot 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F925 中将 juliacall 从 0.9.24 升级至 0.9.25\n* 修复：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F930 中关闭 ParametricExpressionSpec 的双重警告\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.6...v1.5.7","2025-05-19T06:37:00",{"id":191,"version":192,"summary_zh":193,"released_at":194},135822,"v1.5.6","## 变更内容\n* 新增论文贡献及图片，由 @manuel-morales-a 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F824 中提交\n* 修复：@MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F910 中修复了 inv 的序列化问题\n* 自动化更新后端至 v1.10.0，由 @github-actions 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F890 中完成\n\n## 新贡献者\n* @manuel-morales-a 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F824 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.5...v1.5.6","2025-05-04T22:11:54",{"id":196,"version":197,"summary_zh":198,"released_at":199},135823,"v1.5.5","## 变更内容\n* 修复：由 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F885 中修复的 typing-extensions 依赖问题\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.4...v1.5.5","2025-04-02T11:01:21",{"id":201,"version":202,"summary_zh":203,"released_at":204},135824,"v1.5.4","## 变更内容\n* 通过 @MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F884 中实现了对较旧 Python 版本的兼容性。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.3...v1.5.4","2025-04-01T13:51:24",{"id":206,"version":207,"summary_zh":208,"released_at":209},135825,"v1.5.3","## 变更内容\n* 修复：由 @romanovzky 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F868 中更改了 SymPy 映射的顺序\n\n## 新贡献者\n* @romanovzky 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F868 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.2...v1.5.3","2025-03-28T16:51:36",{"id":211,"version":212,"summary_zh":213,"released_at":214},135826,"v1.5.2","## 变更内容\n* 修复：@MilesCranmer 在 https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F858 中对 cbrt 函数的映射问题\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.1...v1.5.2","2025-03-05T14:17:12",{"id":216,"version":217,"summary_zh":218,"released_at":219},135827,"v1.5.1","## What's Changed\r\n* fix: comparison operator parsing by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F845\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.5.0...v1.5.1","2025-03-01T18:46:55",{"id":221,"version":222,"summary_zh":223,"released_at":224},135828,"v1.5.0","## Backend Changes\r\n\r\n### Major Changes\r\n\r\n* Change behavior of batching to resample only every iteration; not every eval in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F421\r\n  * This result in a speed improvement for code with `batching=true`\r\n  * It should also result in improved search results with batching, because comparison within a single population is more stable during evolution. In other words, there is no _lucky batch_ phenomenon.\r\n  * This also refactors the batching interface to be cleaner. There is a `SubDataset \u003C: Dataset` rather than passing around an array `idx` explicitly.\r\n  * Note that other than the slight behaviour change, this is otherwise backwards compatible - the old way to write custom loss functions that take `idx` will still be handled.\r\n\r\n### Other changes\r\n\r\n* feat: better error for mismatched eltypes by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F414\r\n* CompatHelper: bump compat for Optim to 1, (keep existing compat) by @github-actions in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F403\r\n* feat: explicitly monitor errors in workers by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F417\r\n* feat: allow recording crossovers by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F415\r\n* add script for converting record to graphml by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F416\r\n* ci: redistribute part 1 of test suite by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F424\r\n* refactor: rename to `.cost` by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F423\r\n* fix: batched dataset for optimisation by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F426\r\n* refactor: task local storage instead of thread local by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fpull\u002F427\r\n\r\n## Frontend Changes\r\n\r\n* Update backend to v1.8.0 by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F833\r\n* test: update deprecated sklearn test syntax by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F834\r\n* chore(deps): bump juliacall from 0.9.23 to 0.9.24 by @dependabot in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F815\r\n* use standard library logging by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F835\r\n* Remove warning about many features, as not really relevant anymore by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F837\r\n* chore(deps): update beartype requirement from \u003C0.20,>=0.19 to >=0.19,\u003C0.21 by @dependabot in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F838\r\n* chore(deps): update jax[cpu] requirement from \u003C0.5,>=0.4 to >=0.4,\u003C0.6 by @dependabot in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F810\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.4.0...v1.5.0","2025-02-25T07:21:48",{"id":226,"version":227,"summary_zh":228,"released_at":229},135829,"v1.4.0","## What's Changed\r\n\r\n[#823](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F823) adds support for _parameters in template expressions_, allowing you to learn expressions under a template, that have custom coefficients which can be optimized.\r\n\r\nAlong with this, the `TemplateExpressionSpec` API has changed. (The old API will continue to function, but will not have parametric expressions available).\r\n\r\n```python\r\nspec = TemplateExpressionSpec(\r\n    \"fx = f(x); p[1] + p[2] * fx + p[3] * fx^2\",\r\n    expressions=[\"f\"],\r\n    variable_names=[\"x\"],\r\n    parameters={\"p\": 3},\r\n)\r\n```\r\n\r\nThis would learn three parameters, for the expression $y = p_1 + p_2 f(x) + p_3 f(x)^2.$\r\n\r\nYou can have multiple parameter vectors, and these parameter vectors can also be indexed by categorical features. For example:\r\n\r\n```python\r\n# Learn different parameters for each class:\r\nspec = TemplateExpressionSpec(\r\n    \"p1[category] * f(x1, x2) + p2[1] * g(x1^2)\",\r\n    expressions=[\"f\", \"g\"],\r\n    variable_names=[\"x1\", \"x2\", \"category\"],\r\n    parameters={\"p1\": 3, \"p2\": 1},\r\n)\r\n```\r\n\r\nThis will learn an equation of the form: \r\n$$y = \\alpha_c\\,f(x_1,x_2) + \\beta g(x_1 ^2)$$\r\nwhere $c$ is the category, $\\alpha_c$ is a learned parameter specific to each category, and $\\beta$ is a normal scalar category. Note that **unlike ParametricExpressionSpec**, this feature of TemplateExpressionSpec would have you pass the `category` variable _in_ `X` rather than as a category keyword (floating point versions of the categories). This difference means that in a TemplateExpressionSpec, you can actually have _multiple_ categories!\r\n\r\n* Added support for expression-level loss functions via `loss_function_expression`, which allows you to specify custom loss functions that operate on the full expression object rather than just its evaluated output. This is particularly useful when working with template expressions.\r\n\r\n* Note that the old template expression syntax using function-style definitions is deprecated. Use the new, cleaner syntax instead:\r\n\r\n```python\r\n# # Old:\r\n# spec = TemplateExpressionSpec(\r\n#     function_symbols=[\"f\", \"g\"],\r\n#     combine=\"((; f, g), (x1, x2, x3)) -> sin(f(x1, x2)) + g(x3)\"\r\n# )\r\n\r\n# New:\r\nspec = TemplateExpressionSpec(\r\n    \"sin(f(x1, x2)) + g(x3)\"\r\n    expressions=[\"f\", \"g\"], \r\n    variable_names=[\"x1\", \"x2\", \"x3\"],\r\n)\r\n```\r\n\r\n  \r\n**Full Changelog:** [v1.3.1...v1.4.0](https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.3.1...v1.4.0)","2025-02-13T22:06:10",{"id":231,"version":232,"summary_zh":233,"released_at":234},135830,"v1.3.1","## What's Changed\r\n* Automated update to backend: v1.5.1 by @github-actions in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F790\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.3.0...v1.3.1","2024-12-27T06:13:58",{"id":236,"version":237,"summary_zh":238,"released_at":239},135831,"v1.3.0","## What's Changed\r\n\r\n- Expanded support for differential operators via backend 1.5.0 by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F782\r\n\r\ne.g., say we wish to integrate $\\frac{1}{x^2 \\sqrt{x^2 - 1}}$ for $x > 1$:\r\n\r\n```python\r\nimport numpy as np\r\nfrom pysr import PySRRegressor, TemplateExpressionSpec\r\n\r\nx = np.random.uniform(1, 10, (1000,))  # Integrand sampling points\r\ny = 1 \u002F (x**2 * np.sqrt(x**2 - 1))     # Evaluation of the integrand\r\n\r\nexpression_spec = TemplateExpressionSpec(\r\n    [\"f\"], \"((; f), (x,)) -> D(f, 1)(x)\"\r\n)\r\n\r\nmodel = PySRRegressor(\r\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\r\n    unary_operators=[\"sqrt\"],\r\n    expression_spec=expression_spec,\r\n    maxsize=20,\r\n)\r\nmodel.fit(x[:, np.newaxis], y)\r\n```\r\n\r\nwhich should correctly find $\\frac{\\sqrt{x^2 - 1}}{x}$.\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.2.0...v1.3.0","2024-12-15T04:58:56",{"id":241,"version":242,"summary_zh":243,"released_at":244},135832,"v1.2.0","## What's Changed\r\n* Compatibility with new scikit-learn API and test suite by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F776\r\n* Add differential operators and input stream specification by @MilesCranmer in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F780\r\n  * (Note: the differential operators aren't yet in a stable state, and are not yet documented. However, they do work!)\r\n  * This PR also adds various GC allocation improvements in the backend.\r\n\r\n**Frontend Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.1.0...v1.2.0\r\n\r\n**Backend Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FSymbolicRegression.jl\u002Fcompare\u002Fv1.2.0...v1.4.0\r\n","2024-12-14T06:04:20",{"id":246,"version":247,"summary_zh":248,"released_at":249},135833,"v1.1.0","## What's Changed\r\n* Automated update to backend: v1.2.0 by @github-actions in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F770\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.0.2...v1.1.0","2024-12-09T00:45:09",{"id":251,"version":252,"summary_zh":253,"released_at":254},135834,"v1.0.2","## What's Changed\r\n* logger fixes: close streams and persist during warm start by @BrotherHa in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F763\r\n* Let sympy use log2(x) instead of log(x)\u002Flog(2) by @nerai in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F712\r\n\r\n## New Contributors\r\n* @BrotherHa made their first contribution in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F763\r\n* @nerai made their first contribution in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F712\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.0.1...v1.0.2","2024-12-07T00:42:36",{"id":256,"version":257,"summary_zh":258,"released_at":259},135835,"v1.0.1","## What's Changed\r\n* Automated update to backend: v1.1.0 by @github-actions in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F762\r\n* Fall back to `eager` registry when needed by @DilumAluthge in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F765\r\n\r\n## New Contributors\r\n* @DilumAluthge made their first contribution in https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fpull\u002F765\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FMilesCranmer\u002FPySR\u002Fcompare\u002Fv1.0.0...v1.0.1","2024-12-06T18:59:34",{"id":261,"version":262,"summary_zh":263,"released_at":264},135836,"v1.0.0","# PySR v1.0.0 Release Notes\r\n\r\nPySR 1.0.0 introduces new features for imposing specific functional forms and finding parametric expressions. It also includes TensorBoard support, along with significant updates to the core algorithm, including some important bug fixes. The default hyperparameters have also been updated based on extensive tuning, with a maxsize of 30 rather than 20.\r\n\r\n## Major New Features\r\n\r\n### Expression Specifications\r\n\r\nPySR 1.0.0 introduces new ways to specify the structure of equations through \"Expression Specifications\", that expose the new backend feature of `AbstractExpression`:\r\n\r\n#### Template Expressions\r\n`TemplateExpressionSpec` allows you to define a specific structure for your equations. For example:\r\n\r\n```python\r\nexpression_spec = TemplateExpressionSpec([\"f\", \"g\"], \"((; f, g), (x1, x2, x3)) -> sin(f(x1, x2)) + g(x3)\")\r\n```\r\n\r\n#### Parametric Expressions\r\n`ParametricExpressionSpec` enables fitting expressions that can adapt to different categories of data with per-category parameters:\r\n\r\n```python\r\nexpression_spec = ParametricExpressionSpec(max_parameters=2)\r\nmodel = PySRRegressor(\r\n    expression_spec=expression_spec\r\n    binary_operators=[\"+\", \"*\", \"-\", \"\u002F\"],\r\n)\r\nmodel.fit(X, y, category=category)  # Pass category labels\r\n```\r\n\r\n### Improved Logging with TensorBoard\r\n\r\nThe new `TensorBoardLoggerSpec` enables logging of the search process, as well as hyperparameter recording, which exposes the `AbstractSRLogger` feature of the backend:\r\n\r\n```python\r\nlogger_spec = TensorBoardLoggerSpec(\r\n    log_dir=\"logs\u002Frun\",\r\n    log_interval=10,  # Log every 10 iterations\r\n)\r\nmodel = PySRRegressor(logger_spec=logger_spec)\r\n```\r\n\r\nFeatures logged include:\r\n\r\n- Loss curves over time at each complexity level\r\n- Population statistics\r\n- Pareto \"volume\" logging (measures performance over all complexities with a single scalar)\r\n- The min loss over time\r\n\r\n## Algorithm Improvements\r\n\r\n### Updated Default Parameters\r\n\r\nThe default hyperparameters have been significantly revised based on testing:\r\n\r\n- Increased default `maxsize` from 20 to 30, as I noticed that many people use the defaults, and this maxsize would allow for more accurate expressions.\r\n- New mutation operator weights optimized for better performance, along the new mutation \"rotate tree.\"\r\n- Improved search parameters tuned using Pareto front volume calculations.\r\n- Default `niterations` increased from 40 to 100, also to support better accuracy (at the expense of slightly longer default search times).\r\n\r\n### Core Changes\r\n\r\n- New output organization: Results are now stored in `outputs\u002F\u003Crun_id>\u002F` rather than in the directory of execution.\r\n- Improved performance with better parallelism handling\r\n- Support for Python 3.10+ \r\n- Updated Julia backend to version 1.10+\r\n- Fix for aliasing issues in crossover operations\r\n\r\n## Breaking Changes\r\n\r\n- Minimum Python version is now 3.10, and minimum Julia version is 1.10\r\n- Output file structure has changed to use directories\r\n- Parameter name updates:\r\n  - `equation_file` → `output_directory` + `run_id`\r\n  - Added clearer naming for parallelism options, such as `parallelism=\"serial\"` rather than the old `multithreading=False, procs=0` which was unclear\r\n\r\n## Documentation\r\n\r\nThe documentation has a new home at https:\u002F\u002Fai.damtp.cam.ac.uk\u002Fpysr\u002F","2024-12-01T00:07:24"]