[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-python-adaptive--adaptive":3,"tool-python-adaptive--adaptive":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 真正成长为懂上",144730,2,"2026-04-07T23:26:32",[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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":92,"env_deps":93,"category_tags":106,"github_topics":107,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":149},5315,"python-adaptive\u002Fadaptive","adaptive",":chart_with_upwards_trend: Adaptive: parallel active learning of mathematical functions","Adaptive 是一款开源 Python 库，专为数学函数的并行自适应学习而设计。它解决了传统网格采样效率低下的痛点：在面对计算耗时较长（单次评估约需 50 毫秒以上）的复杂函数时，无需盲目计算所有密集网格点，而是能智能识别参数空间中的关键区域，动态选择最具价值的点进行评估。\n\n这一机制显著减少了不必要的计算量，在节省时间与算力资源的同时，确保了结果的高精度。Adaptive 特别适合科研人员、数据科学家及工程开发者使用，尤其是那些需要在计算集群上运行大规模模拟、优化实验或处理多维函数问题的用户。\n\n其核心技术亮点在于“智能自适应采样”算法，能够根据用户定义的损失函数灵活调整策略。此外，Adaptive 原生支持并行执行，可充分利用多核或集群资源加速运算；在 Jupyter 环境中，它还提供了实时绘图与信息组件，让用户能直观监控学习进程并及时调整方向。凭借简洁的接口和对多维标量或向量输出的广泛支持，Adaptive 让复杂的函数探索变得高效且易于上手。","\n# ![logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_b3b0436246bb.png) *Adaptive*: Parallel Active Learning of Mathematical Functions :brain::1234:\n\u003C!-- badges-start -->\n\n[![Binder](https:\u002F\u002Fmybinder.org\u002Fbadge.svg)](https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpython-adaptive\u002Fadaptive\u002Fmain?filepath=example-notebook.ipynb)\n[![Conda](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Finstall%20with-conda-green.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fadaptive)\n[![Coverage](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fpython-adaptive\u002Fadaptive)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpython-adaptive\u002Fadaptive)\n[![DOI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdoi-10.5281%2Fzenodo.1182437-blue.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.1182437)\n[![Documentation](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_13d664e1afd7.png)](https:\u002F\u002Fadaptive.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fdn\u002Fconda-forge\u002Fadaptive.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fadaptive)\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fpython-adaptive\u002Fadaptive.svg?style=social)](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fstargazers)\n[![Gitter](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fnwjs\u002Fnw.js.svg)](https:\u002F\u002Fgitter.im\u002Fpython-adaptive\u002Fadaptive)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fadaptive.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fadaptive)\n\n\u003C!-- badges-end -->\n\n\u003C!-- summary-start -->\n\nAdaptive is an open-source Python library that streamlines adaptive parallel function evaluations.\nRather than calculating all points on a dense grid, it intelligently selects the \"best\" points in the parameter space based on your provided function and bounds.\nWith minimal code, you can perform evaluations on a computing cluster, display live plots, and optimize the adaptive sampling algorithm.\n\nAdaptive is most efficient for computations where each function evaluation takes at least ≈50ms due to the overhead of selecting potentially interesting points.\n\nTo see Adaptive in action, try the [example notebook on Binder](https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpython-adaptive\u002Fadaptive\u002Fmain?filepath=example-notebook.ipynb) or explore the [tutorial on Read the Docs](https:\u002F\u002Fadaptive.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Ftutorial).\n\n\u003C!-- summary-end -->\n\n\u003Cdetails>\u003Csummary>\u003Cb>\u003Cu>[ToC]\u003C\u002Fu>\u003C\u002Fb> 📚\u003C\u002Fsummary>\n\n\u003C!-- START doctoc generated TOC please keep comment here to allow auto update -->\n\u003C!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n- [:star: Key features](#star-key-features)\n- [:rocket: Example usage](#rocket-example-usage)\n  - [:floppy_disk: Exporting Data](#floppy_disk-exporting-data)\n- [:test_tube: Implemented Algorithms](#test_tube-implemented-algorithms)\n- [:package: Installation](#package-installation)\n- [:wrench: Development](#wrench-development)\n- [:books: Citing](#books-citing)\n- [:page_facing_up: Draft Paper](#page_facing_up-draft-paper)\n- [:sparkles: Credits](#sparkles-credits)\n\n\u003C!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n\u003C\u002Fdetails>\n\n\u003C!-- key-features-start -->\n\n## :star: Key features\n\n- 🎯 **Intelligent Adaptive Sampling**: Adaptive focuses on areas of interest within a function, ensuring better results with fewer evaluations, saving time, and computational resources.\n- ⚡ **Parallel Execution**: The library leverages parallel processing for faster function evaluations, making optimal use of available computational resources.\n- 📊 **Live Plotting and Info Widgets**: When working in Jupyter notebooks, Adaptive offers real-time visualization of the learning process, making it easier to monitor progress and identify areas of improvement.\n- 🔧 **Customizable Loss Functions**: Adaptive supports various loss functions and allows customization, enabling users to tailor the learning process according to their specific needs.\n- 📈 **Support for Multidimensional Functions**: The library can handle functions with scalar or vector outputs in one or multiple dimensions, providing flexibility for a wide range of problems.\n- 🧩 **Seamless Integration**: Adaptive offers a simple and intuitive interface, making it easy to integrate with existing Python projects and workflows.\n- 💾 **Flexible Data Export**: The library provides options to export learned data as NumPy arrays or Pandas DataFrames, ensuring compatibility with various data processing tools.\n- 🌐 **Open-Source and Community-Driven**: Adaptive is an open-source project, encouraging contributions from the community to continuously improve and expand the library's features and capabilities.\n\n\u003C!-- key-features-end -->\n\n## :rocket: Example usage\n\nAdaptively learning a 1D function and live-plotting the process in a Jupyter notebook:\n\n```python\nfrom adaptive import notebook_extension, Runner, Learner1D\n\nnotebook_extension()\n\n\ndef peak(x, a=0.01):\n    return x + a**2 \u002F (a**2 + x**2)\n\n\nlearner = Learner1D(peak, bounds=(-1, 1))\nrunner = Runner(learner, loss_goal=0.01)\nrunner.live_info()\nrunner.live_plot()\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_a3cfa70d776e.gif\" width='20%'> \u003C\u002Fimg> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_16bdff3bf127.gif\" width='40%'> \u003C\u002Fimg> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_f15e0e062012.gif\" width='20%'> \u003C\u002Fimg>\n\n### :floppy_disk: Exporting Data\n\nYou can export the learned data as a NumPy array:\n\n```python\ndata = learner.to_numpy()\n```\n\nIf you have Pandas installed, you can also export the data as a DataFrame:\n\n```python\ndf = learner.to_dataframe()\n```\n\n\u003C!-- implemented-algorithms-start -->\n\n## :test_tube: Implemented Algorithms\n\nThe core concept in `adaptive` is the *learner*.\nA *learner* samples a function at the most interesting locations within its parameter space, allowing for optimal sampling of the function.\nAs the function is evaluated at more points, the learner improves its understanding of the best locations to sample next.\n\nThe definition of the \"best locations\" depends on your application domain.\nWhile `adaptive` provides sensible default choices, the adaptive sampling process can be fully customized.\n\nThe following learners are implemented:\n\n\u003C!-- implemented-algorithms-end -->\n\n- `Learner1D`: for 1D functions `f: ℝ → ℝ^N`,\n- `Learner2D`: for 2D functions `f: ℝ^2 → ℝ^N`,\n- `LearnerND`: for ND functions `f: ℝ^N → ℝ^M`,\n- `AverageLearner`: for random variables, allowing averaging of results over multiple evaluations,\n- `AverageLearner1D`: for stochastic 1D functions, estimating the mean value at each point,\n- `IntegratorLearner`: for integrating a 1D function `f: ℝ → ℝ`,\n- `BalancingLearner`: for running multiple learners simultaneously and selecting the \"best\" one as more points are gathered.\n\nMeta-learners (to be used with other learners):\n\n- `BalancingLearner`: for running several learners at once, selecting the \"most optimal\" one each time you get more points,\n- `DataSaver`: for when your function doesn't return just a scalar or a vector.\n\nIn addition to learners, `adaptive` offers primitives for parallel sampling across multiple cores or machines, with built-in support for:\n[concurrent.futures](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fconcurrent.futures.html),\n[mpi4py](https:\u002F\u002Fmpi4py.readthedocs.io\u002Fen\u002Fstable\u002Fmpi4py.futures.html),\n[loky](https:\u002F\u002Floky.readthedocs.io\u002Fen\u002Fstable\u002F),\n[ipyparallel](https:\u002F\u002Fipyparallel.readthedocs.io\u002Fen\u002Flatest\u002F), and\n[distributed](https:\u002F\u002Fdistributed.readthedocs.io\u002Fen\u002Flatest\u002F).\n\n\u003C!-- rest-start -->\n\n## :package: Installation\n\n`adaptive` works with Python 3.7 and higher on Linux, Windows, or Mac, and provides optional extensions for working with the Jupyter\u002FIPython Notebook.\n\nThe recommended way to install adaptive is using `conda`:\n\n```bash\nconda install -c conda-forge adaptive\n```\n\n`adaptive` is also available on PyPI:\n\n```bash\npip install \"adaptive[notebook]\"\n```\n\nThe `[notebook]` above will also install the optional dependencies for running `adaptive` inside a Jupyter notebook.\n\nTo use Adaptive in Jupyterlab, you need to install the following labextensions.\n\n```bash\njupyter labextension install @jupyter-widgets\u002Fjupyterlab-manager\njupyter labextension install @pyviz\u002Fjupyterlab_pyviz\n```\n\n## :wrench: Development\n\nClone the repository and run `pip install -e \".[notebook,test,other]\"` to add a link to the cloned repo into your Python path:\n\n```bash\ngit clone git@github.com:python-adaptive\u002Fadaptive.git\ncd adaptive\npip install -e \".[notebook,test,other]\"\n```\n\nWe recommend using a Conda environment or a virtualenv for package management during Adaptive development.\n\nTo avoid polluting the history with notebook output, set up the git filter by running:\n\n```bash\npython ipynb_filter.py\n```\n\nin the repository.\n\nTo maintain consistent code style, we use [pre-commit](https:\u002F\u002Fpre-commit.com). Install it by running:\n\n```bash\npre-commit install\n```\n\nin the repository.\n\n## :books: Citing\n\nIf you used Adaptive in a scientific work, please cite it as follows.\n\n```bib\n@misc{Nijholt2019,\n  doi = {10.5281\u002Fzenodo.1182437},\n  author = {Bas Nijholt and Joseph Weston and Jorn Hoofwijk and Anton Akhmerov},\n  title = {\\textit{Adaptive}: parallel active learning of mathematical functions},\n  publisher = {Zenodo},\n  year = {2019}\n}\n```\n\n## :page_facing_up: Draft Paper\n\nIf you're interested in the scientific background and principles behind Adaptive, we recommend taking a look at the [draft paper](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fpaper) that is currently being written.\nThis paper provides a comprehensive overview of the concepts, algorithms, and applications of the Adaptive library.\n\n## :sparkles: Credits\n\nWe would like to give credits to the following people:\n\n- Pedro Gonnet for his implementation of [CQUAD](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgsl\u002Fmanual\u002Fhtml_node\u002FCQUAD-doubly_002dadaptive-integration.html), “Algorithm 4” as described in “Increasing the Reliability of Adaptive Quadrature Using Explicit Interpolants”, P. Gonnet, ACM Transactions on Mathematical Software, 37 (3), art. no. 26, 2010.\n- Pauli Virtanen for his `AdaptiveTriSampling` script (no longer available online since SciPy Central went down) which served as inspiration for the `adaptive.Learner2D`.\n\n\u003C!-- rest-end -->\n\nFor general discussion, we have a [Gitter chat channel](https:\u002F\u002Fgitter.im\u002Fpython-adaptive\u002Fadaptive).\nIf you find any bugs or have any feature suggestions please file a GitHub [issue](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002Fnew) or submit a [pull request](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpulls).\n","# ![logo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_b3b0436246bb.png) *Adaptive*: 数学函数的并行主动学习 :brain::1234:\n\u003C!-- badges-start -->\n\n[![Binder](https:\u002F\u002Fmybinder.org\u002Fbadge.svg)](https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpython-adaptive\u002Fadaptive\u002Fmain?filepath=example-notebook.ipynb)\n[![Conda](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Finstall%20with-conda-green.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fadaptive)\n[![Coverage](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Fpython-adaptive\u002Fadaptive)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fpython-adaptive\u002Fadaptive)\n[![DOI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdoi-10.5281%2Fzenodo.1182437-blue.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.1182437)\n[![Documentation](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_13d664e1afd7.png)](https:\u002F\u002Fadaptive.readthedocs.io\u002Fen\u002Flatest\u002F?badge=latest)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fdn\u002Fconda-forge\u002Fadaptive.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fadaptive)\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fpython-adaptive\u002Fadaptive.svg?style=social)](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fstargazers)\n[![Gitter](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fnwjs\u002Fnw.js.svg)](https:\u002F\u002Fgitter.im\u002Fpython-adaptive\u002Fadaptive)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fadaptive.svg)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fadaptive)\n\n\u003C!-- badges-end -->\n\n\u003C!-- summary-start -->\n\nAdaptive 是一个开源的 Python 库，用于简化自适应并行函数评估。它不会在密集网格上计算所有点，而是根据您提供的函数和边界条件，智能地选择参数空间中“最佳”的点。只需少量代码，您就可以在计算集群上执行评估、显示实时图表，并优化自适应采样算法。\n\n由于需要花费一定时间来选择潜在的有趣点，Adaptive 在每次函数评估至少耗时 ≈50ms 的计算任务中效率最高。\n\n要查看 Adaptive 的实际效果，请尝试 [Binder 上的示例笔记本](https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fpython-adaptive\u002Fadaptive\u002Fmain?filepath=example-notebook.ipynb)，或浏览 [Read the Docs 上的教程](https:\u002F\u002Fadaptive.readthedocs.io\u002Fen\u002Flatest\u002Ftutorial\u002Ftutorial)。\n\n\u003C!-- summary-end -->\n\n\u003Cdetails>\u003Csummary>\u003Cb>\u003Cu>[目录]\u003C\u002Fu>\u003C\u002Fb> 📚\u003C\u002Fsummary>\n\n\u003C!-- START doctoc generated TOC please keep comment here to allow auto update -->\n\u003C!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\n- [:star: 主要特性](#star-key-features)\n- [:rocket: 使用示例](#rocket-example-usage)\n  - [:floppy_disk: 导出数据](#floppy_disk-exporting-data)\n- [:test_tube: 已实现的算法](#test_tube-implemented-algorithms)\n- [:package: 安装](#package-installation)\n- [:wrench: 开发](#wrench-development)\n- [:books: 引用](#books-citing)\n- [:page_facing_up: 草稿论文](#page_facing_up-draft-paper)\n- [:sparkles: 致谢](#sparkles-credits)\n\n\u003C!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n\u003C\u002Fdetails>\n\n\u003C!-- key-features-start -->\n\n## :star: 主要特性\n\n- 🎯 **智能自适应采样**：Adaptive 专注于函数中的兴趣区域，以更少的评估次数获得更好的结果，从而节省时间和计算资源。\n- ⚡ **并行执行**：该库利用并行处理加速函数评估，充分利用可用的计算资源。\n- 📊 **实时绘图与信息小部件**：在 Jupyter 笔记本中工作时，Adaptive 提供学习过程的实时可视化，便于监控进度并识别改进方向。\n- 🔧 **可定制的损失函数**：Adaptive 支持多种损失函数，并允许用户自定义，以便根据具体需求调整学习过程。\n- 📈 **支持多维函数**：该库可以处理具有标量或向量输出的一维或多维函数，为各种问题提供了灵活性。\n- 🧩 **无缝集成**：Adaptive 提供简单直观的接口，易于与现有 Python 项目和工作流程集成。\n- 💾 **灵活的数据导出**：该库提供将学习到的数据导出为 NumPy 数组或 Pandas DataFrame 的选项，确保与各种数据处理工具兼容。\n- 🌐 **开源且社区驱动**：Adaptive 是一个开源项目，鼓励社区贡献，以不断改进和扩展库的功能与能力。\n\n\u003C!-- key-features-end -->\n\n## :rocket: 使用示例\n\n在 Jupyter 笔记本中自适应地学习一维函数并实时绘制过程：\n\n```python\nfrom adaptive import notebook_extension, Runner, Learner1D\n\nnotebook_extension()\n\n\ndef peak(x, a=0.01):\n    return x + a**2 \u002F (a**2 + x**2)\n\n\nlearner = Learner1D(peak, bounds=(-1, 1))\nrunner = Runner(learner, loss_goal=0.01)\nrunner.live_info()\nrunner.live_plot()\n```\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_a3cfa70d776e.gif\" width='20%'> \u003C\u002Fimg> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_16bdff3bf127.gif\" width='40%'> \u003C\u002Fimg> \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_readme_f15e0e062012.gif\" width='20%'> \u003C\u002Fimg>\n\n### :floppy_disk: 导出数据\n\n您可以将学习到的数据导出为 NumPy 数组：\n\n```python\ndata = learner.to_numpy()\n```\n\n如果您已安装 Pandas，也可以将数据导出为 DataFrame：\n\n```python\ndf = learner.to_dataframe()\n```\n\n\u003C!-- implemented-algorithms-start -->\n\n## :test_tube: 已实现的算法\n\n`adaptive` 的核心概念是 *学习器*。\n*学习器* 会在其参数空间中最有趣的位置对函数进行采样，从而实现对函数的最优采样。\n随着函数在更多点上被评估，学习器会不断改进其对下一步最佳采样位置的理解。\n\n“最佳位置”的定义取决于你的应用领域。\n虽然 `adaptive` 提供了合理的默认选择，但自适应采样过程完全可以自定义。\n\n目前已实现以下学习器：\n\n\u003C!-- implemented-algorithms-end -->\n\n- `Learner1D`: 用于一维函数 `f: ℝ → ℝ^N`，\n- `Learner2D`: 用于二维函数 `f: ℝ^2 → ℝ^N`，\n- `LearnerND`: 用于高维函数 `f: ℝ^N → ℝ^M`，\n- `AverageLearner`: 用于随机变量，允许在多次评估中对结果取平均，\n- `AverageLearner1D`: 用于随机一维函数，在每个点上估计均值，\n- `IntegratorLearner`: 用于对一维函数 `f: ℝ → ℝ` 进行积分，\n- `BalancingLearner`: 用于同时运行多个学习器，并在收集到更多数据点时选择“最佳”学习器。\n\n元学习器（与其他学习器配合使用）：\n\n- `BalancingLearner`: 用于同时运行多个学习器，每次获得更多数据点时选择“最优化”的一个，\n- `DataSaver`: 当你的函数返回的不只是标量或向量时使用。\n\n除了学习器之外，`adaptive` 还提供了跨多个核心或机器进行并行采样的原语，并内置支持：\n[concurrent.futures](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fconcurrent.futures.html)、\n[mpi4py](https:\u002F\u002Fmpi4py.readthedocs.io\u002Fen\u002Fstable\u002Fmpi4py.futures.html)、\n[loky](https:\u002F\u002Floky.readthedocs.io\u002Fen\u002Fstable\u002F)、\n[ipyparallel](https:\u002F\u002Fipyparallel.readthedocs.io\u002Fen\u002Flatest\u002F) 以及\n[distributed](https:\u002F\u002Fdistributed.readthedocs.io\u002Fen\u002Flatest\u002F)。\n\n\u003C!-- rest-start -->\n\n## :package: 安装\n\n`adaptive` 支持 Python 3.7 及以上版本，可在 Linux、Windows 或 Mac 上运行，并提供可选扩展以与 Jupyter\u002FIPython Notebook 配合使用。\n\n推荐使用 `conda` 安装 `adaptive`：\n\n```bash\nconda install -c conda-forge adaptive\n```\n\n`adaptive` 也可通过 PyPI 获取：\n\n```bash\npip install \"adaptive[notebook]\"\n```\n\n上述 `[notebook]` 选项还会安装在 Jupyter Notebook 中运行 `adaptive` 所需的可选依赖项。\n\n要在 JupyterLab 中使用 Adaptive，你需要安装以下 Lab 扩展：\n\n```bash\njupyter labextension install @jupyter-widgets\u002Fjupyterlab-manager\njupyter labextension install @pyviz\u002Fjupyterlab_pyviz\n```\n\n## :wrench: 开发\n\n克隆仓库并运行 `pip install -e \".[notebook,test,other]\"`，将克隆的仓库链接添加到你的 Python 路径中：\n\n```bash\ngit clone git@github.com:python-adaptive\u002Fadaptive.git\ncd adaptive\npip install -e \".[notebook,test,other]\"\n```\n\n我们建议在开发 Adaptive 时使用 Conda 环境或 virtualenv 进行包管理。\n\n为避免笔记本输出污染提交历史，请在仓库中运行以下命令设置 Git 过滤器：\n\n```bash\npython ipynb_filter.py\n```\n\n为了保持一致的代码风格，我们使用 [pre-commit](https:\u002F\u002Fpre-commit.com)。请在仓库中运行以下命令安装它：\n\n```bash\npre-commit install\n```\n\n## :books: 引用\n\n如果你在科研工作中使用了 Adaptive，请按以下方式引用：\n\n```bib\n@misc{Nijholt2019,\n  doi = {10.5281\u002Fzenodo.1182437},\n  author = {Bas Nijholt and Joseph Weston and Jorn Hoofwijk and Anton Akhmerov},\n  title = {\\textit{Adaptive}: 并行主动学习数学函数},\n  publisher = {Zenodo},\n  year = {2019}\n}\n```\n\n## :page_facing_up: 论文草稿\n\n如果你对 Adaptive 背后的科学背景和原理感兴趣，我们建议你查看目前正在撰写的 [论文草稿](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fpaper)。这篇论文全面概述了 Adaptive 库的概念、算法和应用。\n\n## :sparkles: 致谢\n\n我们谨向以下人士致谢：\n\n- Pedro Gonnet，感谢他实现了 [CQUAD](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgsl\u002Fmanual\u002Fhtml_node\u002FCQUAD-doubly_002dadaptive-integration.html)，即“Increasing the Reliability of Adaptive Quadrature Using Explicit Interpolants”一文中描述的“算法 4”，作者：P. Gonnet，ACM Transactions on Mathematical Software，37(3)，文章编号 26，2010 年。\n- Pauli Virtanen，感谢他编写的 `AdaptiveTriSampling` 脚本（由于 SciPy Central 已关闭，该脚本目前无法在线获取），该脚本为 `adaptive.Learner2D` 的设计提供了灵感。\n\n\u003C!-- rest-end -->\n\n如需一般性讨论，欢迎加入我们的 [Gitter 聊天频道](https:\u002F\u002Fgitter.im\u002Fpython-adaptive\u002Fadaptive)。\n如果您发现任何错误或有功能建议，请在 GitHub 上提交 [issue](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002Fnew) 或 [pull request](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpulls)。","# Adaptive 快速上手指南\n\nAdaptive 是一个开源 Python 库，用于数学函数的**并行自适应主动学习**。它不会在密集网格上计算所有点，而是智能地选择参数空间中“最有价值”的点进行采样，从而用更少的计算资源获得更好的结果。特别适用于单次函数评估耗时较长（约 >50ms）的场景。\n\n## 环境准备\n\n- **操作系统**：Linux、Windows 或 macOS\n- **Python 版本**：3.7 及以上\n- **可选依赖**：若需在 Jupyter Notebook 中使用实时绘图功能，需安装 `notebook` 扩展依赖。\n\n## 安装步骤\n\n推荐使用 `conda` 进行安装（国内用户可配置清华或中科大镜像源加速）：\n\n```bash\n# 使用 conda-forge 渠道安装\nconda install -c conda-forge adaptive\n```\n\n或者使用 `pip` 安装（包含 Notebook 支持）：\n\n```bash\npip install \"adaptive[notebook]\"\n```\n\n> **提示**：如果在 JupyterLab 中使用，还需额外安装以下扩展：\n> ```bash\n> jupyter labextension install @jupyter-widgets\u002Fjupyterlab-manager\n> jupyter labextension install @pyviz\u002Fjupyterlab_pyviz\n> ```\n\n## 基本使用\n\n以下示例展示如何在 Jupyter Notebook 中自适应学习一个一维函数并实时绘制结果：\n\n```python\nfrom adaptive import notebook_extension, Runner, Learner1D\n\n# 启用 Notebook 扩展以支持实时绘图\nnotebook_extension()\n\n\ndef peak(x, a=0.01):\n    return x + a**2 \u002F (a**2 + x**2)\n\n\n# 创建学习者，指定函数和取值范围\nlearner = Learner1D(peak, bounds=(-1, 1))\n\n# 创建运行器，设定损失目标\nrunner = Runner(learner, loss_goal=0.01)\n\n# 显示实时信息和绘图\nrunner.live_info()\nrunner.live_plot()\n```\n\n运行后，Adaptive 会自动选择关键点进行计算，并在 Notebook 中动态更新图表，直到达到设定的精度目标。\n\n### 数据导出\n\n计算完成后，可将结果导出为 NumPy 数组或 Pandas DataFrame：\n\n```python\n# 导出为 NumPy 数组\ndata = learner.to_numpy()\n\n# 导出为 Pandas DataFrame（需安装 pandas）\ndf = learner.to_dataframe()\n```","某量子物理研究团队正在绘制一个高维参数空间下的能量景观图，以寻找超导材料的最优配置，该函数单次计算耗时约 200 毫秒且计算资源昂贵。\n\n### 没有 adaptive 时\n- **资源浪费严重**：为了捕捉细节，研究人员不得不预设极密集的均匀网格，导致在函数变化平缓的区域进行了大量无意义的重复计算。\n- **关键特征遗漏**：固定步长无法动态调整，极易错过狭窄的尖锐峰值或奇点，最终生成的图像分辨率不足，误导物理结论。\n- **调试周期漫长**：任务提交后只能被动等待数小时直至全部完成，若中途发现参数范围设置错误，必须推翻重来，无法实时干预。\n- **并行效率低下**：手动编写多进程脚本管理任务队列复杂且易错，难以充分利用集群的数百个核心进行弹性伸缩。\n\n### 使用 adaptive 后\n- **智能按需采样**：adaptive 自动识别函数变化剧烈的区域并密集采样，而在平滑区域稀疏处理，用仅 20% 的计算量达到了更高的精度。\n- **精准捕捉细节**：算法动态聚焦于“感兴趣”的参数空间，完美还原了微小的能量阱和陡峭边界，确保物理模型准确无误。\n- **实时监控进度**：结合 Jupyter Notebook 的实时绘图功能，研究者能亲眼看到采样点如何随时间聚集到关键区域，随时调整策略。\n- **原生并行加速**：只需几行代码即可将评估任务分发至整个计算集群，adaptive 自动负载均衡，将原本需要一整天的计算缩短至一小时。\n\nadaptive 通过将“盲目穷举”转变为“智能探索”，让科研人员在有限的算力预算内，以前所未有的效率和精度解析复杂的数学函数。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpython-adaptive_adaptive_a3cfa70d.gif","python-adaptive","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpython-adaptive_5dee11b2.jpg","",null,"https:\u002F\u002Fgithub.com\u002Fpython-adaptive",[78,82],{"name":79,"color":80,"percentage":81},"Python","#3572A5",90,{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",10,1217,62,"2026-04-06T06:22:52","BSD-3-Clause",1,"Linux, Windows, macOS","未说明",{"notes":94,"python":95,"dependencies":96},"该工具主要用于数学函数的自适应并行采样，非深度学习模型，因此无特定 GPU 或大内存需求。推荐使用 conda 安装。若在 JupyterLab 中使用实时绘图功能，需额外安装指定的 labextensions。单次函数计算耗时建议大于 50ms 以抵消算法选择点的开销。","3.7+",[97,98,99,100,101,102,103,104,105],"numpy","pandas (可选)","concurrent.futures","mpi4py (可选)","loky (可选)","ipyparallel (可选)","distributed (可选)","@jupyter-widgets\u002Fjupyterlab-manager (JupyterLab 可选)","@pyviz\u002Fjupyterlab_pyviz (JupyterLab 可选)",[14],[108,109,110,111,112,113,114,64,115],"adaptive-learning","machine-learning","python","live-plots","parallel-computing","adaptive-sampling","parallel","active-learning","2026-03-27T02:49:30.150509","2026-04-08T09:59:16.894146",[119,124,129,134,139,144],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},24101,"在 Jupyter Notebook 中运行 Runner 失败怎么办？","这通常是由于 bokeh 版本不兼容导致的。如果使用的是 bokeh 2.3.0 或更高版本，请尝试降级到 2.2.3 版本。可以通过运行以下命令修复：\npip install -U bokeh=2.2.3\n维护者计划在未来发布新版本以彻底解决此问题。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F299",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},24102,"如何处理函数在 x=0 处的不连续性导致采样点过于密集的问题？","当函数在零点附近存在不连续时，自适应算法可能会因为浮点数精度问题将采样点推得极近（如 1.04e-322）。建议的解决方案是设置一个基于机器精度的最小边界阈值，例如使用 `max(abs(bounds)) * machine_precision` 作为默认的最小步长限制，以防止算法在不连续点附近过度细化。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F85",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},24103,"为什么使用 loky 并行后端时，带有 @lru_cache 装饰器的函数会报错 \"can't pickle\"？","这是一个上游依赖库的问题，并非 adaptive 包本身的 bug。具体涉及 joblib\u002Floky 和 cloudpickle 库在处理带 lru_cache 装饰器函数的序列化时的限制。目前该问题在 loky 中尚未修复（参考 issue: joblib\u002Floky#268）。如果必须使用缓存，建议暂时切换回 concurrent.futures.ProcessPoolExecutor，或者避免在并行任务中使用 lru_cache。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F292",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},24104,"如何在 Windows 上结合 MATLAB Engine 使用 adaptive？","在 Windows 上使用 MATLAB Engine API for Python 时，请注意 Python 版本兼容性（MATLAB R2018a 最高支持 Python 3.6）。如果在 Jupyter Notebook 中调用外部 MATLAB 函数失败，而原生 Python 函数正常，可以尝试使用 `adaptive.runner.simple(learner, goal)` 代替标准的 Runner。标准 Runner 的并行机制可能与 MATLAB Engine 冲突，而 simple runner 可能规避此问题。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F175",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},24105,"Adaptive 算法无法发现高斯分布中的所有峰值怎么办？","当处理包含多个随机高斯峰值的未知分布时，默认的三角网格细化策略可能会漏掉某些峰值。解决方法是手动设置三角形的最小和最大尺寸限制（minimum and maximum size of the triangles），强制算法在更细的粒度上进行探索，从而确保所有显著特征（如窄峰值）都能被检测到。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F113",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},24106,"Jupyter Kernel 重启时间过长（超过 30 秒）如何解决？","这个问题通常与 ipykernel 和 jupyter_client 的旧版本有关。确保安装项目要求的最新版本的 `ipykernel` 和 `jupyter_client` 通常可以解决此问题。如果问题依然存在，可能是 ipython\u002Fipykernel#291 中描述的底层问题，建议检查本地终端输出以获取更多调试信息，或等待上游库的修复。","https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F119",[150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245],{"id":151,"version":152,"summary_zh":153,"released_at":154},145674,"v1.4.2","## 变更内容\n* 由 @krokosik 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F482 中移除了偏差函数体中的 for 循环。\n* 由 @krokosik 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F484 中添加了可自定义点数的简单运行器。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F490 中修复了由于 asyncio.get_event_loop() 被移除而导致 AsyncRunner 在 Python 3.14 上失败的问题。\n\n## 新贡献者\n* @krokosik 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F482 中做出了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.4.1...v1.4.2","2025-12-12T17:39:39",{"id":156,"version":157,"summary_zh":158,"released_at":159},145675,"v1.4.1","## 变更内容\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F481 中修复了 2 个 NumPy 已弃用警告\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.4.0...v1.4.1","2025-05-13T12:23:28",{"id":161,"version":162,"summary_zh":163,"released_at":164},145676,"v1.4.0","## 变更内容\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F475 中提出，通过改进防止 `estimate_gradients_2d_global` 函数出现 SciPy 的弃用警告。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F476 中提出，将 Nox 后端改为 `uv`，并进行多项相关改进。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F477 中提出，遵循 SPEC 0 规范，停止对 Python 3.9 和 3.10 的支持。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F478 中提出，在测试中启用 `typeguard` 进行运行时类型检查。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F479 中提出，在 `pre-commit` 中升级 `mypy` 和 `ruff`。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F480 中提出，更新变更日志至 v1.4.0。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.3.2...v1.4.0","2025-05-13T11:50:33",{"id":166,"version":167,"summary_zh":168,"released_at":169},145677,"v1.3.2","## 变更内容\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F473 中移除 notebook_integration.py 中的异步激活魔法代码。\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F474 中修复 readthedocs.yml 文件。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.3.1...v1.3.2","2025-03-03T22:37:17",{"id":171,"version":172,"summary_zh":173,"released_at":174},145678,"v1.3.1","## 变更内容\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F462 中移除 README.md 中的 Azure Pipelines 徽章\n* 由 @eendebakpt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F465 中修复 LinearNDInterpolator 的 SciPy 弃用警告\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.3.0...v1.3.1","2025-01-07T18:53:27",{"id":176,"version":177,"summary_zh":178,"released_at":179},145679,"v1.3.0","## [v1.3.0](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv1.3.0)  (2024-04-10)\n\n[完整变更日志](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.2.0...v1.3.0)\n\n**已合并的拉取请求：**\n\n- 替换已弃用的 NumPy 别名 [\\#458](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F458) ([eendebakpt](https:\u002F\u002Fgithub.com\u002Feendebakpt))\n- 移除 `SKOptLearner`，因为 `scikit-optimize` 已停止维护 [\\#404](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F404) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))","2024-05-31T01:41:25",{"id":181,"version":182,"summary_zh":183,"released_at":184},145680,"v1.2.0","# [v.1.2.0](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv1.2.0) (2024-04-10)\n\n[完整变更日志](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.1.0...v1.2.0)\n\n**已关闭的问题：**\n\n- adaptive 中用于相图绘制的 Multiprocess 和 AsyncRunner 存在问题 [\\#449](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F449)\n- 创建仅支持单进程（无需序列化）的 API [\\#442](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F442)\n- 处理 `LearnerND` 中位于 `ConvexHull` 内但无法到达的区域 [\\#438](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F438)\n- 在脚本中使用 BlockingRunner 时获取进度日志和\u002F或反馈 [\\#436](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F436)\n\n**已合并的拉取请求：**\n\n- 测试 Python 3.12 并修复其安装问题 [\\#453](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F453) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\n- \\[pre-commit.ci\\] 自动更新 pre-commit 配置 [\\#447](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F447) ([pre-commit-ci[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fpre-commit-ci))\n- 使用 ruff-format 替代 black 格式化工具 [\\#446](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F446) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\n- 将 `docs\u002Fenvironment.yml` 中的依赖包版本升级至兼容版本 [\\#445](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F445) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\n- 添加 `AsyncRunner.block_until_done` 方法 [\\#444](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F444) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\n- 添加 `live_info_terminal`，解决 \\#436 问题 [\\#441](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F441) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\n- \\[pre-commit.ci\\] 自动更新 pre-commit 配置 [\\#434](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F434) ([pre-commit-ci[bot]](https:\u002F\u002Fgithub.com\u002Fapps\u002Fpre-commit-ci))\n- 为 Learner1D 和 Learner2D 函数添加基准测试页面 [\\#405](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F405) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))","2024-04-10T07:43:45",{"id":186,"version":187,"summary_zh":188,"released_at":189},145681,"v1.1.0","## 变更内容\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F431 中自动更新 pre-commit 配置\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F433 中自动更新 pre-commit 配置\n* 添加 adaptive.utils.daskify 函数，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F422 中完成\n* 添加 Learner2D 损失函数 'thresholded_loss_factory'，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F437 中完成\n* 确保定期保存在 runner 任务完成后立即触发，由 @jbweston 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F440 中实现\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv1.0.0...v1.1.0","2023-11-29T05:17:16",{"id":191,"version":192,"summary_zh":193,"released_at":194},145682,"v1.0.0","# v1.0.0 版本发布说明\n\n我们很高兴地宣布 Adaptive 1.0.0 版本正式发布。这一里程碑标志着超过六年的开发历程。\n\n## 变更内容\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F392 中进行的 pre-commit 自动更新\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F393 中进行的 pre-commit 自动更新\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F395 中进行的 pre-commit 自动更新\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F397 中进行的 pre-commit 自动更新\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F398 中进行的 pre-commit 自动更新\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F401 中迁移到基于 pyproject.toml 的安装方式\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F402 中用 ruff 替代 isort、flake8 和 pyupgrade\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F357 中修复 HoloViews opts 已弃用警告\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F403 中升级 environment.yml 中的 scikit-optimize\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F396 中使用 nb_execution_raise_on_error Sphinx myst-nb 选项\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F361 中添加 nbQA 用于笔记本和文档的 linting\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F407 中使用 build 模块\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F406 中避免 Readthedocs.org 构建中的 asyncio.coroutine 错误\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F410 中仅在真正需要时才导入包\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F411 中缓存 SequenceLearner 的损失\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F412 中使用 codecov\u002Fcodecov-action 替代已移除的 codecov 包\n* [pre-commit.ci] 由 @pre-commit-ci 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F413 中进行的 pre-commit 自动更新\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F409 中移除 _RequireAttrsABCMeta 元类，并用简单的检查代替\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F414 中将 mypy 添加到 pre-commit，并修复所有当前的类型问题\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F415 中禁用 typeguard CI 流程\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F416 中更新 GitHub Actions CI\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F400 中重写 README 的部分内容，重新排列章节，并新增功能章节\n* 由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F418 中根据 NEP 29 将 Python 版本要求更新为 3.9\n* 由 @basnijholt 在 htt 中使用 versioningit 处理 pyproject.toml 并移除 setup.py","2023-05-15T18:08:29",{"id":196,"version":197,"summary_zh":198,"released_at":199},145683,"v0.15.0","## 变更内容\n* 将 master 分支重命名为 main，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F384 中完成\n* 添加关于执行协程的文档章节，由 @juandaanieel 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F364 中完成\n* 添加 loss_goal、npoints_goal 以及一个 auto_goal 函数，并在运行器中使用，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F382 中完成\n* 为 Runner 类添加类型注解，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F370 中完成\n* 添加对 Python 3.11 的支持，并在该版本上进行测试，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F387 中完成\n* 更新 0.15.0 版本的 CHANGELOG，由 @basnijholt 在 https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F388 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.14.2...v0.15.0","2022-12-02T21:40:32",{"id":201,"version":202,"summary_zh":203,"released_at":204},145684,"v0.15.1","## What's Changed\r\n* Use default executor when Runner(..., executor=None) by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F389\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.15.0...v0.15.1","2022-12-02T21:37:47",{"id":206,"version":207,"summary_zh":208,"released_at":209},145685,"v0.14.2","## What's Changed\r\n* Typehint SequenceLearner by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F366\r\n* Optionally run tests with pandas by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F369\r\n* Type hint IntegratorLearner by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F372\r\n* Add type-hints to BalancingLearner by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F371\r\n* Add type-hints to DataSaver by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F373\r\n* Add type-hints to tests and misc by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F378\r\n* Use numbers module from stdlib as type by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F379\r\n* Add type-hints to Learner2D by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F375\r\n* Avoid unnecessary iteration in SequenceLearner by @jbweston in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F380\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.14.1...v0.14.2","2022-10-14T20:58:26",{"id":211,"version":212,"summary_zh":213,"released_at":214},145686,"v0.14.1","## What's Changed\r\n* Add Learner.new() method that returns an empty copy of the learner by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F365\r\n* Use typing.TypeAlias by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F367\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.14.0...v0.14.1","2022-10-11T16:36:40",{"id":216,"version":217,"summary_zh":218,"released_at":219},145687,"v0.14.0","## What's Changed\r\n* Fix class name issue with modern versions of dask.distributed by @maiani in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F351\r\n* Replacing atomicwrites with os.write  by @juandaanieel in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F353\r\n* Remove scipy deprecation warnings by @eendebakpt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F354\r\n* Docs in Markdown with Myst and change tutorials to Jupytext notebooks by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F355\r\n* Add transparent logo in WebM format (for dark mode) by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F356\r\n* Update pre-commit versions by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F359\r\n* Add getting learner's data as pandas.DataFrame; add learner.to_dataframe method by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F358\r\n* Allow to periodically save with any function by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F362\r\n* Release 0.14 by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F363\r\n\r\n## New Contributors\r\n* @maiani made their first contribution in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F351\r\n* @juandaanieel made their first contribution in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F353\r\n* @eendebakpt made their first contribution in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F354\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.13.2...v0.14.0","2022-10-05T20:19:04",{"id":221,"version":222,"summary_zh":223,"released_at":224},145688,"v0.13.2","## What's Changed\r\n* Update pre-commit filters versions by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F345\r\n* use 'from __future__ import annotations' by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F346\r\n* Switch from Tox to Nox by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F347\r\n* Skip ipyparallel test on MacOS by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F349\r\n* set loop to None in Python 3.10 by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F348\r\n* Run separate typeguard job (because it is much slower) by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F350\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.13.1...v0.13.2","2022-05-31T20:27:42",{"id":226,"version":227,"summary_zh":228,"released_at":229},145689,"v0.13.1","## What's Changed\r\n* take out a cut from the 3D sphere, LearnerND example by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F327\r\n* Documentation conda environment update to latest versions by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F328\r\n* Splits up documentations page into \"algo+examples\" and rest by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F330\r\n* Add an animated logo that shows the working of Adaptive by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F329\r\n* fix 'asyncio.Task.current_task' -> 'asyncio.current_task' by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F331\r\n* Learner1D: return inf loss when the bounds aren't done by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F271\r\n* use jupyter-sphinx instead of custom Sphinx directive by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F332\r\n* pin scikit-learn to 0.24.2, because of https:\u002F\u002Fgithub.com\u002Fscikit-optimize\u002Fscikit-optimize\u002Fissues\u002F1059 by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F333\r\n* rename usage_examples -> gallery by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F334\r\n* add a code example to the examples page by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F335\r\n* fix tutorial about using loky.get_reusable_executor on Windows by @basnijholt in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F336\r\n* Fix NaN issue for Learner1D R -> R^n by @Davide-sd in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F340\r\n\r\n## New Contributors\r\n* @Davide-sd made their first contribution in https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F340\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.13.0...v0.13.1","2022-01-25T16:52:33",{"id":231,"version":232,"summary_zh":233,"released_at":234},145690,"v0.13.0","## [v0.13.0](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv0.13.0) (2021-09-10)\r\n\r\n[Full Changelog](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.12.2...v0.13.0)\r\n\r\n**Fixed bugs:**\r\n\r\n- AverageLearner doesn't work with 0 mean [\\#275](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F275)\r\n- call self.\\_process\\_futures on canceled futures when BlockingRunner is done [\\#320](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F320) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- AverageLearner: fix zero mean [\\#276](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F276) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n\r\n**Closed issues:**\r\n\r\n- Runners should tell learner about remaining points at end of run [\\#319](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F319)\r\n- Cryptic error when importing lmfit [\\#314](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F314)\r\n- change CHANGELOG to KeepAChangelog format [\\#306](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F306)\r\n- jupyter notebook kernels dead after running \"import adaptive\" [\\#298](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F298)\r\n- Emphasis on when to use adaptive in docs [\\#297](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F297)\r\n- GPU acceleration [\\#296](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fissues\u002F296)\r\n\r\n**Merged pull requests:**\r\n\r\n- Learner1D type hints and add typeguard to pytest tests [\\#325](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F325) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- AverageLearner type hints [\\#324](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F324) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- Update doc string for resolution\\_loss\\_function [\\#323](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F323) ([SultanOrazbayev](https:\u002F\u002Fgithub.com\u002FSultanOrazbayev))\r\n- Update Readme to emphasise when adaptive should be used [\\#318](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F318) ([thomasaarholt](https:\u002F\u002Fgithub.com\u002Fthomasaarholt))\r\n- add to\\_numpy methods [\\#317](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F317) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- lazily evaluate the integrator coefficients [\\#311](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F311) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- AverageLearner1D added [\\#283](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F283) ([AlvaroGI](https:\u002F\u002Fgithub.com\u002FAlvaroGI))\r\n- Make LearnerND pickleable [\\#272](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F272) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- add a FAQ [\\#242](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F242) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n","2021-09-10T12:48:13",{"id":236,"version":237,"summary_zh":238,"released_at":239},145691,"v0.12.2","## [v0.12.2](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv0.12.2) (2021-03-23)\r\n\r\n[Full Changelog](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.12.1...v0.12.2)\r\n\r\n**Merged pull requests:**\r\n\r\n- raise an AttributeError when attribute doesn't exists, closes \\#314 [\\#315](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F315) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n","2021-03-23T21:38:34",{"id":241,"version":242,"summary_zh":243,"released_at":244},145692,"v0.12.1","## [v0.12.1](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv0.12.1) (2021-03-23)\r\n\r\n[Full Changelog](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.12.0...v0.12.1)\r\n\r\n**Merged pull requests:**\r\n\r\n- write import differently for pypy [\\#313](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F313) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n","2021-03-23T13:10:29",{"id":246,"version":247,"summary_zh":248,"released_at":249},145693,"v0.12.0","## [v0.12.0](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Ftree\u002Fv0.12.0) (2021-03-23)\r\n\r\n[Full Changelog](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fcompare\u002Fv0.11.3...HEAD)\r\n\r\n**Merged pull requests:**\r\n\r\n- bump to Python≥3.7 [\\#312](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F312) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- lazily evaluate the integrator coefficients [\\#311](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F311) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- add resolution\\_loss\\_function for Learner1D [\\#310](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F310) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- add \"\\(Code\\) style fix or documentation update\" to .github\u002Fpull\\_request\\_template.md [\\#309](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F309) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- remove the requirements from the tutorial landing page [\\#308](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F308) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- add change log to the docs [\\#307](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F307) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))\r\n- remove automerge action [\\#305](https:\u002F\u002Fgithub.com\u002Fpython-adaptive\u002Fadaptive\u002Fpull\u002F305) ([basnijholt](https:\u002F\u002Fgithub.com\u002Fbasnijholt))","2021-03-23T11:59:51"]