[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mlpack--mlpack":3,"tool-mlpack--mlpack":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":67,"owner_name":67,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":117,"forks":118,"last_commit_at":119,"license":120,"difficulty_score":121,"env_os":122,"env_gpu":122,"env_ram":122,"env_deps":123,"category_tags":130,"github_topics":131,"view_count":23,"oss_zip_url":77,"oss_zip_packed_at":77,"status":16,"created_at":140,"updated_at":141,"faqs":142,"releases":173},2321,"mlpack\u002Fmlpack","mlpack","mlpack: a fast, header-only C++ machine learning library","mlpack 是一个快速、灵活且仅包含头文件的 C++ 机器学习库，旨在成为机器学习领域的“瑞士军刀”。它提供了丰富的算法实现，涵盖从基础数据处理到复杂模型训练的多种功能，帮助开发者高效构建和部署机器学习应用。\n\n针对传统机器学习库依赖复杂、编译缓慢或难以集成的痛点，mlpack 凭借轻量级的架构和直观的 API 设计，显著降低了使用门槛。其“仅头文件”的特性意味着无需繁琐的安装步骤，只需引入即可使用，非常适合对性能敏感的生产环境以及需要快速迭代的交互式原型开发。\n\n除了强大的 C++ 核心，mlpack 还提供了 Python、R、Julia、Go 等多种语言的绑定以及命令行工具，让不同技术背景的用戶都能轻松调用其功能。无论是专注于算法研究的研究人员，还是需要将模型落地到实际产品的软件工程师，都能从中受益。作为由 NumFOCUS 资助的开源项目，mlpack 在保持高性能的同时，也拥有活跃的社区支持和完善的文档资源，是探索和实践机器学习的理想选择。","\u003Ch2 align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmlpack.org\">\u003Cimg src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fmlpack\u002Fmlpack.org@e7d36ed8\u002Fmlpack-black.svg\" style=\"background-color:rgba(0,0,0,0);\" height=230 alt=\"mlpack: a fast, header-only machine learning library\">\u003C\u002Fa>\n  \u003Cbr>a fast, header-only machine learning library\u003Cbr>\n\u003C\u002Fh2>\n\n\u003Ch5 align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmlpack.org\">Home\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fdownload.html\">Download\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html\">Documentation\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fquestions.html\">Help\u003C\u002Fa>\n\u003C\u002Fh5>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg alt=\"GitHub Actions CI\" src=\"https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicense\u002FBSD-3-Clause\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%203--Clause-blue.svg?style=flat-square\" alt=\"License\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnumfocus.org\u002Fdonate-to-mlpack\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fsponsored%20by-NumFOCUS-orange.svg?style=flat-square&colorA=E1523D&colorB=007D8A\" alt=\"NumFOCUS\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cem>\n    Download:\n    \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Ffiles\u002Fmlpack-4.7.0.tar.gz\">current stable version (4.7.0)\u003C\u002Fa>\n  \u003C\u002Fem>\n\u003C\u002Fp>\n\n**mlpack** is an intuitive, fast, and flexible header-only C++ machine learning\nlibrary with bindings to other languages.  It is meant to be a machine learning\nanalog to LAPACK, and aims to implement a wide array of machine learning methods\nand functions as a \"swiss army knife\" for machine learning researchers.\n\nmlpack's lightweight C++ implementation makes it ideal for deployment and\nproduction environments; but it can also be used for interactive prototyping via\nC++ notebooks.\n\nIn addition to its powerful C++ interface, mlpack also provides command-line\nprograms, Python bindings, Julia bindings, Go bindings and R bindings.\n\n***Quick links:***\n\n - Quickstart guides: [C++](doc\u002Fquickstart\u002Fcpp.md),\n   [CLI](doc\u002Fquickstart\u002Fcli.md), [Python](doc\u002Fquickstart\u002Fpython.md),\n   [R](doc\u002Fquickstart\u002Fr.md), [Julia](doc\u002Fquickstart\u002Fjulia.md),\n   [Go](doc\u002Fquickstart\u002Fgo.md)\n - [mlpack homepage](https:\u002F\u002Fwww.mlpack.org\u002F)\n - [mlpack documentation](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html)\n - [Examples repository](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fexamples\u002F)\n - [Tutorials](doc\u002Fuser\u002Ftutorials.md)\n - [Development Site (Github)](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002F)\n\n[\u002F\u002F]: # (numfocus-fiscal-sponsor-attribution)\n\nmlpack uses an [open governance model](.\u002FGOVERNANCE.md) and is fiscally\nsponsored by [NumFOCUS](https:\u002F\u002Fnumfocus.org\u002F).  Consider making a\n[tax-deductible donation](https:\u002F\u002Fnumfocus.org\u002Fdonate-to-mlpack) to help the\nproject pay for developer time, professional services, travel, workshops, and a\nvariety of other needs.\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnumfocus.org\u002F\">\n    \u003Cimg height=\"60\"\n         src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlpack_mlpack_readme_4ec43cc1a7a4.png\"\n         align=\"middle\"\n         alt=\"NumFOCUS logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cbr>\n\n## 0. Contents\n\n 1. [Citation details](#1-citation-details)\n 2. [Dependencies](#2-dependencies)\n 3. [Installation](#3-installation)\n 4. [Usage from C++](#4-usage-from-c)\n     1. [Reducing compile time](#41-reducing-compile-time)\n 5. [Building mlpack's test suite](#5-building-mlpacks-test-suite)\n 6. [Further resources](#6-further-resources)\n\n## 1. Citation details\n\nIf you use mlpack in your research or software, please cite mlpack using the\ncitation below (given in BibTeX format):\n\n    @article{mlpack2023,\n        title     = {mlpack 4: a fast, header-only C++ machine learning library},\n        author    = {Ryan R. Curtin and Marcus Edel and Omar Shrit and \n                     Shubham Agrawal and Suryoday Basak and James J. Balamuta and \n                     Ryan Birmingham and Kartik Dutt and Dirk Eddelbuettel and \n                     Rishabh Garg and Shikhar Jaiswal and Aakash Kaushik and \n                     Sangyeon Kim and Anjishnu Mukherjee and Nanubala Gnana Sai and \n                     Nippun Sharma and Yashwant Singh Parihar and Roshan Swain and \n                     Conrad Sanderson},\n        journal   = {Journal of Open Source Software},\n        volume    = {8},\n        number    = {82},\n        pages     = {5026},\n        year      = {2023},\n        doi       = {10.21105\u002Fjoss.05026},\n        url       = {https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.05026}\n    }\n\nCitations are beneficial for the growth and improvement of mlpack.\n\n## 2. Dependencies\n\n**mlpack** requires the following additional dependencies:\n\n - C++17 compiler\n - [Armadillo](https:\u002F\u002Farma.sourceforge.net)      &nbsp;&emsp;>= 10.8\n - [ensmallen](https:\u002F\u002Fensmallen.org)      &emsp;>= 2.10.0\n - [cereal](http:\u002F\u002Fuscilab.github.io\u002Fcereal\u002F)         &ensp;&nbsp;&emsp;&emsp;>= 1.1.2\n\nmlpack bundles the [STB](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb),\n[httplib](https:\u002F\u002Fgithub.com\u002Fyhirose\u002Fcpp-httplib\u002Ftree\u002Fmaster), and\n[`dr_libs`](https:\u002F\u002Fgithub.com\u002Fmackron\u002Fdr_libs) header-only libraries to\nprovide image loading support, dataset download, and audio loading support,\nrespectively. If you prefer to use versions available on your system, see\n[the compilation options](doc\u002Fuser\u002Fcompile.md#configuring-mlpack-with-compile-time-definitions)\n\nIf you are compiling Armadillo by hand, ensure that LAPACK and BLAS are enabled.\n\n## 3. Installation\n\nDetailed installation instructions can be found on the\n[Installing mlpack](doc\u002Fuser\u002Finstall.md) page.\n\n## 4. Usage from C++\n\nOnce headers are installed with `make install`, using mlpack in an application\nconsists only of including it.  So, your program should include mlpack:\n\n```c++\n#include \u003Cmlpack.hpp>\n```\n\nand when you link, be sure to link against Armadillo.  If your example program\nis `my_program.cpp`, your compiler is GCC, and you would like to compile with\nOpenMP support (recommended) and optimizations, compile like this:\n\n```sh\ng++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmp\n```\n\nNote that if you want to serialize (save or load) neural networks, you should\nadd `#define MLPACK_ENABLE_ANN_SERIALIZATION` before including `\u003Cmlpack.hpp>`.\nIf you don't define `MLPACK_ENABLE_ANN_SERIALIZATION` and your code serializes a\nneural network, a compilation error will occur.\n\n`MLPACK_ENABLE_ANN_SERIALIZATION` allows you to serialize networks using\n`arma::mat` as their matrix type. You can also define\n`MLPACK_ENABLE_ANN_SERIALIZATION_FMAT` to serialize networks using `arma::fmat`.\n\n***Warning:*** older versions of OpenBLAS (0.3.26 and older) compiled to use\npthreads may use too many threads for computation, causing significant slowdown.\nOpenBLAS versions compiled with OpenMP do not suffer from this issue.  See the\n[test build guide](doc\u002Fuser\u002Finstall.md#build-tests) for more details and simple\nworkarounds.\n\nSee also:\n\n * the [test program compilation section](doc\u002Fuser\u002Finstall.md#compiling-a-test-program)\n   of the installation documentation,\n * the [C++ quickstart](doc\u002Fquickstart\u002Fcpp.md), and\n * the [examples repository](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fexamples) repository for\n   some examples of mlpack applications in C++, with corresponding `Makefile`s.\n\n### 4.1. Reducing compile time\n\nmlpack is a template-heavy library, and if care is not used, compilation time of\na project can be very high.  Fortunately, there are a number of ways to reduce\ncompilation time:\n\n * Include individual headers, like `\u003Cmlpack\u002Fmethods\u002Fdecision_tree.hpp>`, if you\n   are only using one component, instead of `\u003Cmlpack.hpp>`.  This reduces the\n   amount of work the compiler has to do.\n\n * Only use the `MLPACK_ENABLE_ANN_SERIALIZATION` definition if you are\n   serializing neural networks in your code.  When this define is enabled,\n   compilation time will increase significantly, as the compiler must generate\n   code for every possible type of layer.  (The large amount of extra\n   compilation overhead is why this is not enabled by default.)\n\n * If you are using mlpack in multiple .cpp files, consider using [`extern\n   templates`](https:\u002F\u002Fisocpp.org\u002Fwiki\u002Ffaq\u002Fcpp11-language-templates) so that the\n   compiler only instantiates each template once; add an explicit template\n   instantiation for each mlpack template type you want to use in a .cpp file,\n   and then use `extern` definitions elsewhere to let the compiler know it\n   exists in a different file.\n\nOther strategies exist too, such as precompiled headers, compiler options,\n[`ccache`](https:\u002F\u002Fccache.dev), and others.\n\n## 5. Building mlpack's test suite\n\nSee the [installation instruction section](doc\u002Fuser\u002Finstall.md#build-tests).\n\n## 6. Further Resources\n\nMore documentation is available for both users and developers.\n\n * [Documentation homepage](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html)\n\nTo learn about the development goals of mlpack in the short- and medium-term\nfuture, see the [vision document](https:\u002F\u002Fwww.mlpack.org\u002Fpapers\u002Fvision.pdf).\n\nIf you have problems, find a bug, or need help, you can try visiting\nthe [mlpack help](https:\u002F\u002Fwww.mlpack.org\u002Fquestions.html) page, or [mlpack on\nGithub](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002F).  Alternately, mlpack help can be\nfound on Matrix at `#mlpack`; see also the\n[community](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Fdeveloper\u002Fcommunity.html) page.\n","\u003Ch2 align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmlpack.org\">\u003Cimg src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fmlpack\u002Fmlpack.org@e7d36ed8\u002Fmlpack-black.svg\" style=\"background-color:rgba(0,0,0,0);\" height=230 alt=\"mlpack：一个快速、纯头文件的机器学习库\">\u003C\u002Fa>\n  \u003Cbr>一个快速、纯头文件的机器学习库\u003Cbr>\n\u003C\u002Fh2>\n\n\u003Ch5 align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fmlpack.org\">首页\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fdownload.html\">下载\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html\">文档\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Fquestions.html\">帮助\u003C\u002Fa>\n\u003C\u002Fh5>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg alt=\"GitHub Actions CI\" src=\"https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopensource.org\u002Flicense\u002FBSD-3-Clause\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%203--Clause-blue.svg?style=flat-square\" alt=\"许可证\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnumfocus.org\u002Fdonate-to-mlpack\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fsponsored%20by-NumFOCUS-orange.svg?style=flat-square&colorA=E1523D&colorB=007D8A\" alt=\"NumFOCUS\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cem>\n    下载：\n    \u003Ca href=\"https:\u002F\u002Fwww.mlpack.org\u002Ffiles\u002Fmlpack-4.7.0.tar.gz\">当前稳定版本（4.7.0）\u003C\u002Fa>\n  \u003C\u002Fem>\n\u003C\u002Fp>\n\n**mlpack** 是一个直观、快速且灵活的纯头文件 C++ 机器学习库，同时提供与其他语言的绑定。它旨在成为机器学习领域的 LAPACK，目标是实现广泛的机器学习方法和功能，为机器学习研究人员提供一把“瑞士军刀”。\n\nmlpack 轻量级的 C++ 实现使其非常适合部署在生产环境中；同时，它也可以通过 C++ 笔记本进行交互式原型开发。\n\n除了强大的 C++ 接口外，mlpack 还提供了命令行工具、Python 绑定、Julia 绑定、Go 绑定和 R 绑定。\n\n***快速链接：***\n\n - 快速入门指南：[C++](doc\u002Fquickstart\u002Fcpp.md)，\n   [CLI](doc\u002Fquickstart\u002Fcli.md)，[Python](doc\u002Fquickstart\u002Fpython.md)，\n   [R](doc\u002Fquickstart\u002Fr.md)，[Julia](doc\u002Fquickstart\u002Fjulia.md)，\n   [Go](doc\u002Fquickstart\u002Fgo.md)\n - [mlpack 主页](https:\u002F\u002Fwww.mlpack.org\u002F)\n - [mlpack 文档](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html)\n - [示例仓库](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fexamples\u002F)\n - [教程](doc\u002Fuser\u002Ftutorials.md)\n - [开发站点（Github）](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002F)\n\n[\u002F\u002F]: # (numfocus-fiscal-sponsor-attribution)\n\nmlpack 采用 [开放治理模式](.\u002FGOVERNANCE.md)，并由 [NumFOCUS](https:\u002F\u002Fnumfocus.org\u002F) 提供财政支持。请考虑进行一次 [可抵税捐赠](https:\u002F\u002Fnumfocus.org\u002Fdonate-to-mlpack)，以帮助项目支付开发者时间、专业服务、差旅、研讨会以及其他各种需求。\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnumfocus.org\u002F\">\n    \u003Cimg height=\"60\"\n         src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlpack_mlpack_readme_4ec43cc1a7a4.png\"\n         align=\"middle\"\n         alt=\"NumFOCUS logo\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cbr>\n\n## 0. 目录\n\n 1. [引用信息](#1-citation-details)\n 2. [依赖项](#2-dependencies)\n 3. [安装](#3-installation)\n 4. [从 C++ 中使用](#4-usage-from-c)\n     1. [减少编译时间](#41-reducing-compile-time)\n 5. [构建 mlpack 的测试套件](#5-building-mlpacks-test-suite)\n 6. [更多资源](#6-further-resources)\n\n## 1. 引用信息\n\n如果您在研究或软件中使用了 mlpack，请使用以下 BibTeX 格式的引用：\n\n    @article{mlpack2023,\n        title     = {mlpack 4：一个快速、纯头文件的 C++ 机器学习库},\n        author    = {Ryan R. Curtin 和 Marcus Edel 和 Omar Shrit 和 \n                     Shubham Agrawal 和 Suryoday Basak 和 James J. Balamuta 和 \n                     Ryan Birmingham 和 Kartik Dutt 和 Dirk Eddelbuettel 和 \n                     Rishabh Garg 和 Shikhar Jaiswal 和 Aakash Kaushik 和 \n                     Sangyeon Kim 和 Anjishnu Mukherjee 和 Nanubala Gnana Sai 和 \n                     Nippun Sharma 和 Yashwant Singh Parihar 和 Roshan Swain 和 \n                     Conrad Sanderson},\n        journal   = {Journal of Open Source Software},\n        volume    = {8},\n        number    = {82},\n        pages     = {5026},\n        year      = {2023},\n        doi       = {10.21105\u002Fjoss.05026},\n        url       = {https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.05026}\n    }\n\n引用有助于 mlpack 的发展与改进。\n\n## 2. 参考文献\n\n**mlpack** 需要以下额外依赖项：\n\n - C++17 编译器\n - [Armadillo](https:\u002F\u002Farma.sourceforge.net)      &nbsp;&emsp;>= 10.8\n - [ensmallen](https:\u002F\u002Fensmallen.org)      &emsp;>= 2.10.0\n - [cereal](http:\u002F\u002Fuscilab.github.io\u002Fcereal\u002F)         &ensp;&nbsp;&emsp;&emsp;>= 1.1.2\n\nmlpack 自带了 [STB](https:\u002F\u002Fgithub.com\u002Fnothings\u002Fstb)、[httplib](https:\u002F\u002Fgithub.com\u002Fyhirose\u002Fcpp-httplib\u002Ftree\u002Fmaster) 和 [`dr_libs`](https:\u002F\u002Fgithub.com\u002Fmackron\u002Fdr_libs) 等纯头文件库，分别用于图像加载、数据集下载和音频加载支持。如果您更倾向于使用系统中已有的版本，请参阅 [编译选项](doc\u002Fuser\u002Fcompile.md#configuring-mlpack-with-compile-time-definitions)。\n\n如果您手动编译 Armadillo，请确保已启用 LAPACK 和 BLAS。\n\n## 3. 安装\n\n详细的安装说明可在 [安装 mlpack](doc\u002Fuser\u002Finstall.md) 页面找到。\n\n## 4. 在 C++ 中的使用\n\n当通过 `make install` 安装了头文件后，在应用程序中使用 mlpack 只需包含相应的头文件即可。因此，您的程序应包含 mlpack 头文件：\n\n```c++\n#include \u003Cmlpack.hpp>\n```\n\n在链接时，请确保链接到 Armadillo 库。假设您的示例程序名为 `my_program.cpp`，编译器为 GCC，并且您希望启用 OpenMP 支持（推荐）和优化选项，则可以按以下方式编译：\n\n```sh\ng++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmp\n```\n\n请注意，如果您希望序列化（保存或加载）神经网络，应在包含 `\u003Cmlpack.hpp>` 之前定义 `#define MLPACK_ENABLE_ANN_SERIALIZATION`。如果不定义该宏而代码尝试序列化神经网络，将会导致编译错误。\n\n`MLPACK_ENABLE_ANN_SERIALIZATION` 允许您使用 `arma::mat` 作为矩阵类型来序列化网络。您也可以定义 `MLPACK_ENABLE_ANN_SERIALIZATION_FMAT` 来使用 `arma::fmat` 进行序列化。\n\n***警告：*** 较旧版本的 OpenBLAS（0.3.26 及更早版本）在编译时使用 pthreads 时，可能会启动过多的线程进行计算，从而导致性能显著下降。而使用 OpenMP 编译的 OpenBLAS 版本则不会出现此问题。有关详细信息及简单解决方案，请参阅 [测试构建指南](doc\u002Fuser\u002Finstall.md#build-tests)。\n\n另请参阅：\n\n * 安装文档中的 [测试程序编译部分](doc\u002Fuser\u002Finstall.md#compiling-a-test-program)，\n * [C++ 快速入门](doc\u002Fquickstart\u002Fcpp.md)，以及\n * [示例仓库](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fexamples)，其中包含一些 mlpack 在 C++ 中的应用示例及其对应的 `Makefile`。\n\n### 4.1. 减少编译时间\n\nmlpack 是一个高度依赖模板的库，若不加以注意，项目的编译时间可能会非常长。幸运的是，有几种方法可以有效减少编译时间：\n\n * 如果您只使用 mlpack 的某个特定组件，可以单独包含相应头文件，例如 `\u003Cmlpack\u002Fmethods\u002Fdecision_tree.hpp>`，而不是包含 `\u003Cmlpack.hpp>`。这样可以减少编译器的工作量。\n\n * 仅在代码中需要序列化神经网络时才使用 `MLPACK_ENABLE_ANN_SERIALIZATION` 宏定义。启用该宏会显著增加编译时间，因为编译器必须为每种可能的层类型生成代码。（正是由于额外的大量编译开销，该宏默认未启用。）\n\n * 如果您在多个 `.cpp` 文件中使用 mlpack，可以考虑使用 [`extern templates`](https:\u002F\u002Fisocpp.org\u002Fwiki\u002Ffaq\u002Fcpp11-language-templates)，使编译器只需对每个模板实例化一次；在每个需要使用 mlpack 模板类型的 `.cpp` 文件中添加显式模板实例化声明，然后在其他文件中使用 `extern` 声明来告知编译器该模板已在另一文件中定义。\n\n此外，还有预编译头文件、编译器选项、[`ccache`](https:\u002F\u002Fccache.dev) 等其他策略可用于进一步优化编译效率。\n\n## 5. 构建 mlpack 的测试套件\n\n请参阅安装说明中的 [构建测试部分](doc\u002Fuser\u002Finstall.md#build-tests)。\n\n## 6. 更多资源\n\n针对用户和开发者，我们提供了更多文档资料。\n\n * [文档主页](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Findex.html)\n\n要了解 mlpack 在短期和中期内的开发目标，请参阅 [愿景文档](https:\u002F\u002Fwww.mlpack.org\u002Fpapers\u002Fvision.pdf)。\n\n如果您遇到问题、发现 bug 或需要帮助，可以访问 [mlpack 帮助页面](https:\u002F\u002Fwww.mlpack.org\u002Fquestions.html)，或前往 [mlpack 的 GitHub 仓库](https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002F)。此外，您也可以在 Matrix 上的 `#mlpack` 频道寻求帮助；更多信息请参阅 [社区页面](https:\u002F\u002Fwww.mlpack.org\u002Fdoc\u002Fdeveloper\u002Fcommunity.html)。","# mlpack 快速上手指南\n\nmlpack 是一个快速、灵活且仅包含头文件的 C++ 机器学习库，旨在成为机器学习领域的\"瑞士军刀\"。它提供了直观的 C++ 接口，并支持 Python、R、Julia、Go 等多种语言绑定。\n\n## 1. 环境准备\n\n### 系统要求\n- **编译器**：支持 C++17 标准的编译器（如 GCC 7+ 或 Clang 5+）\n- **构建工具**：CMake, Make\n\n### 前置依赖\n安装 mlpack 前，请确保系统已安装以下库（版本需满足最低要求）：\n\n| 依赖库 | 最低版本 | 说明 |\n| :--- | :--- | :--- |\n| **Armadillo** | >= 10.8 | 线性代数库（编译时需启用 LAPACK 和 BLAS） |\n| **ensmallen** | >= 2.10.0 | 优化库 |\n| **cereal** | >= 1.1.2 | 序列化库 |\n\n> **注意**：mlpack 内部已捆绑 STB (图像加载), cpp-httplib (数据集下载), 和 dr_libs (音频加载) 库，通常无需单独安装。若使用 Ubuntu\u002FDebian 系统，可通过包管理器一键安装主要依赖：\n> ```bash\n> sudo apt-get install libarmadillo-dev libensmallen-dev libcereal-dev\n> ```\n\n## 2. 安装步骤\n\n### 方式一：使用包管理器（推荐 Linux 用户）\n对于 Ubuntu\u002FDebian 用户，可直接安装预编译版本：\n```bash\nsudo apt-get update\nsudo apt-get install mlpack libmlpack-dev\n```\n\n### 方式二：源码编译安装（通用）\n若需最新版本或自定义配置，请按以下步骤操作：\n\n1. **下载源码**\n   访问官网下载最新稳定版 (4.7.0) 或使用 git 克隆：\n   ```bash\n   wget https:\u002F\u002Fwww.mlpack.org\u002Ffiles\u002Fmlpack-4.7.0.tar.gz\n   tar -xzf mlpack-4.7.0.tar.gz\n   cd mlpack-4.7.0\n   ```\n\n2. **创建构建目录并配置**\n   ```bash\n   mkdir build\n   cd build\n   cmake ..\n   ```\n   *注：若依赖库安装在非标准路径，可使用 `-D` 参数指定，例如 `-DARMADILLO_INCLUDE_DIR=\u002Fpath\u002Fto\u002Farmadillo\u002Finclude`。*\n\n3. **编译与安装**\n   ```bash\n   make -j4\n   sudo make install\n   ```\n\n## 3. 基本使用 (C++)\n\nmlpack 是头文件库，安装后只需在代码中包含主头文件即可使用。\n\n### 最简单的示例\n创建一个名为 `my_program.cpp` 的文件：\n\n```cpp\n#include \u003Cmlpack.hpp>\n\nint main()\n{\n  \u002F\u002F 打印 mlpack 版本信息\n  std::cout \u003C\u003C \"mlpack version: \" \u003C\u003C MLPACK_VERSION \u003C\u003C std::endl;\n  \n  \u002F\u002F 示例：创建一个简单的数据矩阵\n  arma::mat data = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};\n  \n  std::cout \u003C\u003C \"Data matrix created successfully.\" \u003C\u003C std::endl;\n  return 0;\n}\n```\n\n### 编译命令\n使用 GCC 编译上述程序，需链接 Armadillo 库并开启优化（推荐开启 OpenMP 支持）：\n\n```sh\ng++ -O3 -std=c++17 -o my_program my_program.cpp -larmadillo -fopenmp\n```\n\n### 运行程序\n```sh\n.\u002Fmy_program\n```\n\n### 进阶提示：减少编译时间\nmlpack 模板丰富，全量引入可能导致编译较慢。若仅需特定算法（如决策树），建议单独引入头文件以加速编译：\n\n```cpp\n\u002F\u002F 推荐做法：只引入需要的模块\n#include \u003Cmlpack\u002Fmethods\u002Fdecision_tree.hpp>\n\n\u002F\u002F 而不是\n\u002F\u002F #include \u003Cmlpack.hpp>\n```\n\n> **注意**：若需保存或加载神经网络模型，必须在包含 `\u003Cmlpack.hpp>` 之前定义宏：\n> `#define MLPACK_ENABLE_ANN_SERIALIZATION`","某嵌入式视觉初创团队需要在资源受限的边缘设备上部署实时异常检测模型，以监控生产线上的产品缺陷。\n\n### 没有 mlpack 时\n- 团队不得不依赖庞大的 Python 深度学习框架，导致模型在边缘设备上的内存占用过高，频繁出现崩溃。\n- 由于缺乏高效的 C++ 原生实现，将原型算法移植到生产环境需要重写大量代码，开发周期被拉长数周。\n- 尝试集成其他轻量级库时，发现它们功能单一且缺乏统一的接口，维护多套算法代码让团队协作变得混乱。\n- 编译过程复杂且耗时，每次调整算法参数都需要重新配置繁琐的依赖项，严重拖慢了迭代速度。\n\n### 使用 mlpack 后\n- 借助 mlpack 纯头文件（header-only）的特性，团队直接将其嵌入 C++ 项目，内存占用降低 80%，模型在边缘设备上稳定运行。\n- 利用其丰富的命令行工具和 C++ API，研究人员无需重写代码即可将原型直接转为生产级应用，部署时间从数周缩短至几天。\n- mlpack 提供了统一的“瑞士军刀”式接口，涵盖聚类、分类等多种算法，团队只需维护一套代码库，协作效率显著提升。\n- 得益于轻量级设计和清晰的依赖管理，编译速度大幅加快，开发人员可以即时验证算法调整效果，迭代频率提高三倍。\n\nmlpack 通过其极速、灵活且易集成的 C++ 实现，成功打通了从算法原型到边缘端生产部署的最后一公里。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlpack_mlpack_cbf55558.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmlpack_5dfadc24.png","a fast, header-only C++ machine learning library",null,"mlpack@lists.mlpack.org","http:\u002F\u002Fwww.mlpack.org\u002F","https:\u002F\u002Fgithub.com\u002Fmlpack",[82,86,90,94,98,102,106,110,113],{"name":83,"color":84,"percentage":85},"C++","#f34b7d",88.7,{"name":87,"color":88,"percentage":89},"C","#555555",8,{"name":91,"color":92,"percentage":93},"CMake","#DA3434",1.5,{"name":95,"color":96,"percentage":97},"Python","#3572A5",0.8,{"name":99,"color":100,"percentage":101},"Shell","#89e051",0.4,{"name":103,"color":104,"percentage":105},"Go","#00ADD8",0.3,{"name":107,"color":108,"percentage":109},"R","#198CE7",0.1,{"name":111,"color":112,"percentage":109},"Julia","#a270ba",{"name":114,"color":115,"percentage":116},"Groovy","#4298b8",0,5611,1704,"2026-04-02T17:01:14","NOASSERTION",4,"未说明",{"notes":124,"python":122,"dependencies":125},"该库主要为 C++ 实现，若手动编译 Armadillo 需确保启用 LAPACK 和 BLAS。旧版本 OpenBLAS (0.3.26 及更早) 若编译为使用 pthreads 可能导致计算线程过多从而显著变慢，建议使用 OpenMP 编译的版本。若需序列化神经网络，需在包含头文件前定义 MLPACK_ENABLE_ANN_SERIALIZATION 宏。库内部已捆绑 STB、httplib 和 dr_libs 用于图像、数据集和音频加载。",[126,127,128,129],"C++17 compiler","Armadillo >= 10.8","ensmallen >= 2.10.0","cereal >= 1.1.2",[13],[132,133,134,135,136,137,138,139],"machine-learning-library","c-plus-plus","deep-learning","nearest-neighbor-search","regression","machine-learning","hacktoberfest","scientific-computing","2026-03-27T02:49:30.150509","2026-04-06T06:44:06.144931",[143,148,153,158,163,168],{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},10644,"如何为 mlpack 贡献新的损失函数或激活函数？","社区鼓励贡献者添加尚未实现的损失函数或激活函数。在开始工作前，请先检查：1. 该功能是否已被实现；2. 是否有相关的 Pull Request (PR) 正在处理中；3. 是否已被其他人认领。你可以查看引用此问题的开放 PR，避免重复工作。如果发现某个 PR 长期停滞（stale），你可以接手该工作或提出一个新的有用函数并说明理由。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F2200",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},10645,"编译时出现 'ARMADILLO_INCLUDE_DIR-NOTFOUND\u002Farmadillo_bits\u002Fconfig.hpp not found' 错误如何解决？","这通常意味着 CMake 无法找到 Armadillo 库的头文件。解决方法是确保正确设置了环境变量 $ARMADILLO_INCLUDE_DIR 和 $ARMADILLO_LIBRARY 指向 Armadillo 的安装目录。如果修改了 cmake_install.cmake 或使用本地目录，请确保路径配置正确并通过 CMake 的检查。重新运行 CMake 配置步骤通常能解决此链接问题。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F511",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},10646,"如何在 Windows 上成功构建 Python 绑定？","在 Windows 上使用 Visual Studio 构建 Python 绑定时需注意：1. 必须同时设置 -DBUILD_PYTHON_BINDINGS=ON 和 -DBUILD_SHARED_LIBS=ON，因为 Python 绑定需要 mlpack 作为 DLL；2. 修正 setup.py 中的 package_dir 路径，将其改为相对路径（如 {'': '.'}）而非绝对路径；3. 确保构建目录中存在所需的 boost 和 mlpack 库文件（如 boost_serialization.lib, mlpack.dll 等），必要时需手动创建目录并复制文件；4. 若导入时报错，检查生成的 .pyd 文件路径是否正确。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F1872",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},10647,"我想为 mlpack 实现一个新算法，应该如何开始？","如果你希望贡献新算法，首先应识别 mlpack 当前缺失的功能。建议在 GitHub、IRC 或邮件列表（见 http:\u002F\u002Fwww.mlpack.org\u002Fhelp.html）上发起讨论，说明你想实现的算法及其价值。维护者非常乐意回答问题并协助解决潜在问题。不要直接提交代码，先通过讨论确认该功能的必要性和实现方案。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F1112",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},10648,"为什么我的指标（Metric）Pull Request 被关闭而不是合并？","PR 被关闭通常是因为实现中存在诸多问题或未通过代码审查。在贡献新指标前，请确保：1. 该指标确实未被实现；2. 没有其他人正在开发相同功能；3. 代码符合项目规范且经过充分测试。如果看到某个相关 PR 长期停滞，可以在此基础上继续完善或直接提出新的实现方案，并解释该指标的实用性。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F2294",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},10649,"如何判断哪些激活函数或损失函数还需要实现？","可以通过查看标记为 'help wanted' 或 'good first issue' 的相关 Issue 列表来获取未实现函数的清单。此外，检查引用这些 Issue 的开放 PR 列表，排除已被认领或正在开发的功能。如果发现某些主流框架（如 PyTorch、TensorFlow）中常用但 mlpack 中缺失的函数，也可以主动提出并说明其重要性。","https:\u002F\u002Fgithub.com\u002Fmlpack\u002Fmlpack\u002Fissues\u002F2181",[174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269],{"id":175,"version":176,"summary_zh":177,"released_at":178},71226,"4.7.0","Released Jan. 31st, 2026.\r\n\r\n * Allow batching when training RNN with ragged lengths (#4042).\r\n\r\n * Fixed generated artifiacts in resized float images by using clamping (#4030).\r\n\r\n * Optimize convolution (#3988).\r\n\r\n * Added `GELUExact` ANN activation layer (#3994).\r\n\r\n * Adapt `GRU` ANN layer to the new interface (#3955).\r\n\r\n * Fix warning on CRAN for bundled STB (#3950).\r\n\r\n * Fix potential MSVC constructor shadowing (#3958).\r\n\r\n * Use a looser check for auto-detection of categorical file types (#3961).\r\n\r\n * Accelerate `CELU` layer (#3975).\r\n\r\n * Fix dependency detection bugs in `mlpack.cmake` (#3981).\r\n\r\n * Add a `SumReduce` layer (#3991).\r\n\r\n * Update header used by R packages compiling directly against C++ API (#3990).\r\n\r\n * Add `FFN::Add()` and `RNN::Add()` with copy and move semantics; use these instead of passing layers to `Add()` as pointers (#3974).\r\n\r\n * Mark long-running tests with the `[long]` tag (#3983).\r\n\r\n * Added `DAGNetwork` class to represent complex neural network structures (#3944).\r\n\r\n * Fix mask handling in `MultiHeadAttention` layer (#3998)\r\n\r\n * Added `data::GroupChannels()` and `data::InterleaveChannels()` for preprocessing images before using `Convolution` layers. (#4006)\r\n\r\n * Fix infinite recursion in `Octree` when the number of identical points exceeds `maxLeafSize` (#4020).\r\n\r\n * Add `Embedding` layer (#3999).\r\n\r\n * Add YOLOv3Tiny for object detection (#4023).\r\n\r\n * Fix thread-specific random seed initialization (#4027).\r\n\r\n * R bindings now return class attributes as vector with the given model, mlpack model bindings and list as fallback (#4045).\r\n\r\n * Added `BoundingBoxImage()` for drawing bounding boxes onto images when doing tasks such as object detection (#4039).","2026-02-01T02:20:56",{"id":180,"version":181,"summary_zh":182,"released_at":183},71227,"4.6.2","Released May 22, 2025.\r\n\r\n * Fix compilation of `Save()` when HDF5 is enabled (#3942).\r\n\r\n * Update bundled STB to fix warnings in R bindings (#3940).\r\n\r\n * Fix cross-validation support for algorithms with many parameters (including `RandomForest`) (#3941).\r\n","2025-05-22T14:58:38",{"id":185,"version":186,"summary_zh":187,"released_at":188},71228,"4.6.1","Released May 14, 2025.\r\n\r\n * Shuffle sequence lengths for RNNs (#3926).\r\n * Add ability to compile OpenBLAS for Windows (#3922).\r\n * Drop pytest-runner and \"setup.py test\" support (#3921).\r\n * Fix compilation errors with clang++ version 20 (#3928).","2025-05-14T18:55:11",{"id":190,"version":191,"summary_zh":192,"released_at":193},71229,"4.6.0","Released Apr. 3, 2025.\r\n\r\n * Fix command-line duplicate output bug when loading matrices for some bindings (#3838).\r\n * Use `CMAKE_BUILD_TYPE` to specify build type instead of DEBUG and PROFILE options (#3865).\r\n * Add `MLPACK_NO_STD_MUTEX` to allow disabling `std::mutex` (#3868).\r\n * Bundle STB with mlpack and add `ResizeImages()` functionality (#3823).\r\n * Add `mlpack.cmake` to facilitate finding mlpack and its dependencies (#3872).\r\n * Fix conversion of empty Armadillo objects to numpy in Python bindings (#3896).\r\n * Added bootstrap strategies for `RandomForest`: `IdentityBootstrap`, `DefaultBootstrap`, and `SequentialBootstrap` (#3829).\r\n * Add `ResizeCropImages()` for resize-and-crop image preprocessing functionality (#3903).\r\n * Fix `LSTM` input size calculation for multidimensional inputs (#3913).","2025-04-03T15:51:32",{"id":195,"version":196,"summary_zh":197,"released_at":198},71230,"4.5.1","Released Dec. 4, 2024.\r\n\r\n * Fix compilation with clang 19 (#3799).\r\n * Deprecate version of `data::Split()` that returns a `std::tuple` for consistency; use other overloads instead (#3803).\r\n * Fix LSTM layer copy\u002Fmove constructors (#3809).\r\n * Fix compilation if only including `mlpack\u002Fmethods\u002Fkde\u002Fkde_model.hpp` (#3800).\r\n * Fix serialization and `MinDistance()` bugs with `HollowBallBound` (#3808).","2024-12-04T19:12:30",{"id":200,"version":201,"summary_zh":202,"released_at":203},71231,"4.5.0","Released September 18, 2024.\r\n\r\n * Distribute STB headers as part of R package (#3724, #3726).\r\n * Added OpenMP parallelization to Hamerly, Naive, and Elkan k-means (#3761, #3762, #3764).\r\n * Added OpenMP support for fast approximation (#3685).\r\n * Implemented the Find and Fill algorithm into the Dropout Layer and added OpenMP support (#3684).\r\n * Update Python bindings to support NumPy 2.x (#3752).\r\n * Bump minimum Armadillo version to 10.8 (#3760).\r\n * Adapt `NearestInterpolation` ANN layer to new Layer Interface (#3768).\r\n * Add support for arbitrary matrix types to `Radical` and deprecate `Radical::DoRadical()` in favor of `Radical::Apply()` (#3787).","2024-09-18T13:09:07",{"id":205,"version":206,"summary_zh":207,"released_at":208},71232,"4.4.0","Released May 28, 2024.\r\n\r\n\r\n\r\n * Add `print_training_accuracy` option to LogisticRegression bindings (#3552).\r\n * Fix `preprocess_split()` call in documentation for `LinearRegression` and `AdaBoost` Python classes (#3563).\r\n * Added `Repeat` ANN layer type (#3565).\r\n * Remove `round()` implementation for old MSVC compilers (#3570).\r\n * (R) Added inline plugin to the R bindings to allow for other R packages to link to headers (#3626, h\u002Ft @cgiachalis).\r\n * (R) Removed extra gcc-specific options from `Makevars.win`  (#3627, h\u002Ft @kalibera).\r\n * (R) Changed roxygen package-level documentation from using `@docType package` to `\"_PACKAGE\"`. (#3636)\r\n * Fix floating-point accuracy issue for decision trees that sometimes caused crashes (#3595).\r\n * Use templates metaprog to distinguish between a matrix and a cube type (#3602), (#3585).\r\n * Use `MatType` instead of `arma::Mat\u003CeT>`, (#3567), (#3607), (#3608), (#3609), (#3568).\r\n * Generalize matrix operations for armadillo and bandicoot, (#3619), (#3617), (#3610), (#3643), (#3600), (#3605), (#3629).\r\n * Change `arma::conv_to` to `ConvTo` using a local shim for bandicoot support (#3614).\r\n * Fix a bug for the stddev and mean in `RandNormal()` #(3651).\r\n * Allow PCA to take different matrix types (#3677).\r\n * Fix usage of precompiled headers; remove cotire (#3635).\r\n * Fix non-working `verbose` option for R bindings (#3691), and add global `mlpack.verbose` option (#3706).\r\n * Fix divide-by-zero edge case for LARS (#3701).\r\n * Templatize `SparseCoding` and `LocalCoordinateCoding` to allow different matrix types (#3709, #3711).\r\n * Fix handling of unused atoms in `LocalCoordinateCoding` (#3711).\r\n * Move minimum required C++ version from C++14 to C++17 (#3704).","2024-05-28T21:17:12",{"id":210,"version":211,"summary_zh":212,"released_at":213},71233,"4.3.0","Released Nov. 27, 2023.\r\n\r\n * Fix include ordering issue for `LinearRegression` (#3541).\r\n * Fix L1 regularization in case where weight is zero (#3545).\r\n * Use HTTPS for all auto-downloaded dependencies (#3550).\r\n * More robust detection of C++17 mode in the MSVC \"compiler\" (#3555, #3557).\r\n * Fix setting number of classes correctly in `SoftmaxRegression::Train()` (#3553).\r\n * Adapt `MultiheadAttention` and `LayerNorm` ANN layers to new Layer interface (#3547).\r\n * Fix inconsistent use of the \"input\" parameter to the Backward method in ANNs (#3551).","2023-11-27T18:45:09",{"id":215,"version":216,"summary_zh":217,"released_at":218},71234,"4.2.1","Released Sep. 7, 2023.  (Sorry for the late Github release. Forgot to hit the \"publish\" button.)\r\n\r\n * Reinforcement Learning: Gaussian noise (#3515).\r\n * Reinforcement Learning: Twin Delayed Deep Deterministic Policy Gradient (#3512).\r\n * Reinforcement Learning: Ornstein-Uhlenbeck noise (#3499).\r\n * Reinforcement Learning: Deep Deterministic Policy Gradient (#3494).\r\n * Add `ClassProbabilities()` member to `DecisionTree` so that the internal details of trees can be more easily inspected (#3511).\r\n * Bipolar sigmoid activation function added and invertible functions fixed (#3506).\r\n * Add auto-configured `mlpack\u002Fconfig.hpp` to contain configuration details of mlpack that are required at compile time.  STB detection is now done in this file with the `MLPACK_HAS_STB` macro (#3529).","2023-10-16T11:06:45",{"id":220,"version":221,"summary_zh":222,"released_at":223},71235,"4.2.0","Released June 16, 2023.\r\n\r\n * Adapt C_ReLU, ReLU6, FlexibleReLU layer for new neural network API (#3445).\r\n * Fix PReLU, add integration test to it (#3473).\r\n * Fix bug in LogSoftMax derivative (#3469).\r\n * Add `serialize` method to `GaussianInitialization`,  `LecunNormalInitialization`, `KathirvalavakumarSubavathiInitialization`, `NguyenWidrowInitialization`,  and `OrthogonalInitialization` (#3483).\r\n * Allow categorical features to `preprocess_one_hot_encode` (#3487).\r\n * Install mlpack and cereal headers as part of R package (#3488).\r\n * Add intercept and normalization support to LARS (#3493).\r\n * Allow adding two features simultaneously to LARS models (#3493).\r\n * Adapt FTSwish activation function (#3485).\r\n * Adapt Hyper-Sinh activation function (#3491).","2023-06-16T19:48:54",{"id":225,"version":226,"summary_zh":227,"released_at":228},71236,"4.1.0","Released Apr. 27, 2023.\r\n\r\n * Adapt HardTanH layer (#3454).\r\n * Adapt Softmin layer for new neural network API (#3437).\r\n * Adapt PReLU layer for new neural network API (#3420).\r\n * Add CF decomposition methods: QUIC_SVDPolicy and BlockKrylovSVDPolicy (#3413, #3404).\r\n * Update outdated code in tutorials (#3398, #3401).\r\n * Bugfix for non-square convolution kernels (#3376).\r\n * Fix a few missing includes in \u003Cmlpack.hpp> (#3374).\r\n * Fix DBSCAN handling of non-core points (#3346).\r\n * Avoid deprecation warnings in Armadillo 11.4.4+ (#3405).\r\n * Issue runtime error when serialization of neural networks is attempted but MLPACK_ENABLE_ANN_SERIALIZATION is not defined (#3451).\r\n","2023-04-27T13:26:18",{"id":230,"version":231,"summary_zh":232,"released_at":233},71237,"4.0.1","Released Dec. 29, 2022.\r\n\r\n * Fix mapping of categorical data for Julia bindings (#3305).\r\n * Bugfix: catch all exceptions when running bindings from Julia, instead of crashing (#3304).\r\n * Various Python configuration fixes for Windows and OS X (#3312, #3313, #3311, #3309, #3308, #3297, #3302).\r\n * Optimize and strip compiled Python bindings when possible, resulting in significant size minimization (#3310).\r\n * The `\u002Fstd:c++17` and `\u002FZc:__cplusplus` options are now required when using Visual Studio (#3318).  Documentation and compile-time checks added.\r\n * Set `BUILD_TESTS` to `OFF` by default.  If you want to build tests, like `mlpack_test`, manually set `BUILD_TESTS` to `ON` in your CMake configuration step (#3316).\r\n * Fix handling of transposed matrix parameters in Python, Julia, R, and Go bindings (#3327).\r\n * Comment out definition of ARMA_NO DEBUG. This allows various Armadillo run-time checks such as non-conforming matrices and out-of-bounds element access. In turn this helps tracking down bugs and incorrect usage (#3322).","2022-12-29T15:40:58",{"id":235,"version":236,"summary_zh":237,"released_at":238},71238,"4.0.0","Released Oct. 24, 2022.\r\n\r\nThis is a huge overhaul of mlpack so that the C++ portion of the library is header-only.\r\nThe library no longer depends on Boost, and only requires cereal, Armadillo, and ensmallen.\r\nCompilation time has been significantly reduced due to these changes, and complicated linking processes are no longer necessary.\r\nSince this refactoring took quite a while, there have also been numerous other improvements, listed individually below:\r\n\r\n * Bump C++ standard requirement to C++14 (#3233).\r\n * Fix `Perceptron` to work with cross-validation framework (#3190).\r\n * Migrate from boost tests to Catch2 framework (#2523), (#2584).\r\n * Bump minimum armadillo version from 8.400 to 9.800 (#3043), (#3048).\r\n * Adding a copy constructor in the Convolution layer (#3067).\r\n * Replace `boost::spirit` parser by a local efficient implementation (#2942).\r\n * Disable correctly the autodownloader + fix tests stability (#3076).\r\n * Replace `boost::any` with `core::v2::any` or `std::any` if available (#3006).\r\n * Remove old non used Boost headers (#3005).\r\n * Replace `boost::enable_if` with `std::enable_if` (#2998).\r\n * Replace `boost::is_same` with `std::is_same` (#2993).\r\n * Remove invalid option for emsmallen and STB (#2960).\r\n * Check for armadillo dependencies before downloading armadillo (#2954).\r\n * Disable the usage of autodownloader by default (#2953).\r\n * Install dependencies downloaded with the autodownloader (#2952).\r\n  * Download older Boost if the compiler is old (#2940). \r\n * Add support for embedded systems (#2531).\r\n * Build mlpack executable statically if the library is statically linked (#2931).\r\n * Fix cover tree loop bug on embedded arm systems (#2869).\r\n * Fix a LAPACK bug in `FindArmadillo.cmake` (#2929).\r\n * Add an autodownloader to get mlpack dependencies (#2927).\r\n * Remove Coverage files and configurations from CMakeLists (#2866).\r\n * Added `Multi Label Soft Margin Loss` loss function for neural networks (#2345).\r\n * Added Decision Tree Regressor (#2905). It can be used using the class `mlpack::tree::DecisionTreeRegressor`. It is accessible only though C++.\r\n * Added dict-style inspection of mlpack models in python bindings (#2868).\r\n * Added Extra Trees Algorithm (#2883). Currently, it can be used using the class `mlpack::tree::ExtraTrees`, but only through C++.\r\n * Add Flatten T Swish activation function (`flatten-t-swish.hpp`)\r\n * Added warm start feature to Random Forest (#2881); this feature is accessible from mlpack's bindings to different languages.\r\n * Added Pixel Shuffle layer (#2563).\r\n * Add \"check_input_matrices\" option to python bindings that checks for NaN and inf values in all the input matrices (#2787).\r\n * Add Adjusted R squared functionality to R2Score::Evaluate (#2624).\r\n * Disabled all the bindings by default in CMake (#2782).\r\n * Added an implementation to Stratify Data (#2671).\r\n * Add `BUILD_DOCS` CMake option to control whether Doxygen documentation is built (default ON) (#2730).\r\n * Add Triplet Margin Loss function (#2762).\r\n * Add finalizers to Julia binding model types to fix memory handling (#2756).\r\n * HMM: add functions to calculate likelihood for data stream with\u002Fwithout pre-calculated emission probability (#2142).\r\n * Replace Boost serialization library with Cereal (#2458).\r\n * Add `PYTHON_INSTALL_PREFIX` CMake option to specify installation root for Python bindings (#2797).\r\n * Removed `boost::visitor` from model classes for `knn`, `kfn`, `cf`, `range_search`, `krann`, and `kde` bindings (#2803).\r\n * Add k-means++ initialization strategy (#2813).\r\n * `NegativeLogLikelihood\u003C>` now expects classes in the range `0` to `numClasses - 1` (#2534).\r\n * Add `Lambda1()`, `Lambda2()`, `UseCholesky()`, and `Tolerance()` members to `LARS` so parameters for training can be modified (#2861).\r\n * Remove unused `ElemType` template parameter from `DecisionTree` and `RandomForest` (#2874).\r\n * Fix Python binding build when the CMake variable `USE_OPENMP` is set to `OFF` (#2884).\r\n * The `mlpack_test` target is no longer built as part of `make all`.  Use `make mlpack_test` to build the tests.\r\n * Fixes to `HoeffdingTree`: ensure that training still works when empty constructor is used (#2964).\r\n * Fix Julia model serialization bug (#2970).\r\n * Fix `LoadCSV()` to use pre-populated `DatasetInfo` objects (#2980).\r\n * Add `probabilities` option to softmax regression binding, to get class probabilities for test points (#3001).\r\n * Fix thread safety issues in mlpack bindings to other languages (#2995).\r\n * Fix double-free of model pointers in R bindings (#3034).\r\n * Fix Julia, Python, R, and Go handling of categorical data for `decision_tree()` and `hoeffding_tree()` (#2971).\r\n * Depend on `pkgbuild` for R bindings (#3081).\r\n  * Replaced Numpy deprecated code in Python bindings (#3126).\r\n\r\nRefer to the documentation on the website or in `doc\u002F` for updated instructions on how to use this new version of mlpack.","2022-10-24T13:43:48",{"id":240,"version":241,"summary_zh":242,"released_at":243},71239,"3.4.2","Released Oct. 28, 2020.\r\n\r\n * Added Mean Absolute Percentage Error.\r\n * Added Softmin activation function as layer in ann\u002Flayer.\r\n * Fix spurious ARMA_64BIT_WORD compilation warnings on 32-bit systems (#2665).","2020-10-28T16:27:07",{"id":245,"version":246,"summary_zh":247,"released_at":248},71240,"3.4.1","Released Sep. 7, 2020.\r\n\r\n  * Fix incorrect parsing of required matrix\u002Fmodel parameters for command-line bindings (#2600).\r\n\r\n  * Add manual type specification support to `data::Load()` and `data::Save()` (#2084, #2135, #2602).\r\n\r\n  * Remove use of internal Armadillo functionality (#2596, #2601, #2602).","2020-09-07T16:40:50",{"id":250,"version":251,"summary_zh":252,"released_at":253},71241,"3.4.0","Released Sept. 1st, 2020.\r\n\r\n  * Issue warnings when metrics produce NaNs in KFoldCV (#2595).\r\n\r\n  * Added bindings for _R_ during Google Summer of Code (#2556).\r\n\r\n  * Added common striptype function for all bindings (#2556).\r\n\r\n  * Refactored common utility function of bindings to bindings\u002Futil (#2556).\r\n\r\n  * Renamed InformationGain to HoeffdingInformationGain in `methods\u002Fhoeffding_trees\u002Finformation_gain.hpp` (#2556).\r\n\r\n  * Added macro for changing stream of printing and warnings\u002Ferrors (#2556).\r\n\r\n  * Added Spatial Dropout layer (#2564).\r\n\r\n  * Force CMake to show error when it didn't find Python\u002Fmodules (#2568).\r\n\r\n  * Refactor `ProgramInfo()` to separate out all the different information (#2558).\r\n\r\n  * Add bindings for one-hot encoding (#2325).\r\n\r\n  * Added Soft Actor-Critic to RL methods (#2487).\r\n\r\n  * Added Categorical DQN to q_networks (#2454).\r\n\r\n  * Added N-step DQN to q_networks (#2461).\r\n\r\n  * Add Silhoutte Score metric and Pairwise Distances (#2406).\r\n\r\n  * Add Go bindings for some missed models (#2460).\r\n\r\n  * Replace boost program_options dependency with CLI11 (#2459).\r\n\r\n  * Additional functionality for the ARFF loader (#2486); use case sensitive categories (#2516).\r\n\r\n  * Add `bayesian_linear_regression` binding for the command-line, Python, Julia, and Go.  Also called \"Bayesian Ridge\", this is equivalent to a version of linear regression where the regularization parameter is automatically tuned (#2030).\r\n\r\n  * Fix defeatist search for spill tree traversals (#2566, #1269).\r\n\r\n  * Fix incremental training of logistic regression models (#2560).\r\n\r\n  * Change default configuration of `BUILD_PYTHON_BINDINGS` to `OFF` (#2575).","2020-09-01T22:19:02",{"id":255,"version":256,"summary_zh":257,"released_at":258},71242,"3.3.2","Released June 18, 2020.\r\n\r\n  * Added Noisy DQN to q_networks (#2446).\r\n\r\n  * Add [preview release of] Go bindings (#1884).\r\n\r\n  * Added Dueling DQN to q_networks, Noisy linear layer to ann\u002Flayer and Empty loss to ann\u002Floss_functions (#2414).\r\n\r\n  * Storing and adding accessor method for action in q_learning (#2413).\r\n\r\n  * Added accessor methods for ANN layers (#2321).\r\n\r\n  * Addition of `Elliot` activation function (#2268).\r\n\r\n  * Add adaptive max pooling and adaptive mean pooling layers (#2195).\r\n\r\n  * Add parameter to avoid shuffling of data in preprocess_split (#2293).\r\n\r\n  * Add `MatType` parameter to `LSHSearch`, allowing sparse matrices to be used for search (#2395).\r\n\r\n  * Documentation fixes to resolve Doxygen warnings and issues (#2400).\r\n\r\n  * Add Load and Save of Sparse Matrix (#2344).\r\n\r\n  * Add Intersection over Union (IoU) metric for bounding boxes (#2402).\r\n\r\n  * Add Non Maximal Supression (NMS) metric for bounding boxes (#2410).\r\n\r\n  * Fix `no_intercept` and probability computation for linear SVM bindings (#2419).\r\n\r\n  * Fix incorrect neighbors for `k > 1` searches in `approx_kfn` binding, for the `QDAFN` algorithm (#2448).\r\n\r\n  * Add `RBF` layer in ann module to make `RBFN` architecture (#2261).","2020-06-18T22:29:29",{"id":260,"version":261,"summary_zh":262,"released_at":263},71243,"3.3.1","Released April 29th, 2020.\r\n\r\n  * Minor Julia and Python documentation fixes (#2373).\r\n\r\n  * Updated terminal state and fixed bugs for Pendulum environment (#2354, #2369).\r\n\r\n  * Added `EliSH` activation function (#2323).\r\n\r\n  * Add L1 Loss function (#2203).\r\n\r\n  * Pass CMAKE_CXX_FLAGS (compilation options) correctly to Python build (#2367).\r\n\r\n  * Expose ensmallen Callbacks for sparseautoencoder (#2198).\r\n\r\n  * Bugfix for LARS class causing invalid read (#2374).\r\n\r\n  * Add serialization support from Julia; use `mlpack.serialize()` and `mlpack.deserialize()` to save and load from `IOBuffer`s.\r\n\r\n","2020-04-30T12:35:08",{"id":265,"version":266,"summary_zh":267,"released_at":268},71244,"3.3.0","Released April 7th, 2020.\r\n\r\n  * Templated return type of `Forward function` of loss functions (#2339).\r\n\r\n  * Added `R2 Score` regression metric (#2323).\r\n\r\n  * Added `mean squared logarithmic error` loss function for neural networks (#2210).\r\n\r\n  * Added `mean bias loss function` for neural networks (#2210).\r\n\r\n  * The DecisionStump class has been marked deprecated; use the `DecisionTree` class with `NoRecursion=true` or use `ID3DecisionStump` instead (#2099).\r\n\r\n  * Added `probabilities_file` parameter to get the probabilities matrix of AdaBoost classifier (#2050).\r\n\r\n  * Fix STB header search paths (#2104).\r\n\r\n  * Add `DISABLE_DOWNLOADS` CMake configuration option (#2104).\r\n\r\n  * Add padding layer in TransposedConvolutionLayer (#2082).\r\n\r\n  * Fix pkgconfig generation on non-Linux systems (#2101).\r\n\r\n  * Use log-space to represent HMM initial state and transition probabilities (#2081).\r\n\r\n  * Add functions to access parameters of `Convolution` and `AtrousConvolution` layers (#1985).\r\n\r\n  * Add Compute Error function in lars regression and changing Train function to return computed error (#2139).\r\n\r\n  * Add Julia bindings (#1949).  Build settings can be controlled with the `BUILD_JULIA_BINDINGS=(ON\u002FOFF)` and `JULIA_EXECUTABLE=\u002Fpath\u002Fto\u002Fjulia` CMake parameters.\r\n\r\n  * CMake fix for finding STB include directory (#2145).\r\n\r\n  * Add bindings for loading and saving images (#2019); `mlpack_image_converter` from the command-line, `mlpack.image_converter()` from Python.\r\n\r\n  * Add normalization support for CF binding (#2136).\r\n\r\n  * Add Mish activation function (#2158).\r\n\r\n  * Update `init_rules` in AMF to allow users to merge two initialization rules (#2151).\r\n\r\n  * Add GELU activation function (#2183).\r\n\r\n  * Better error handling of eigendecompositions and Cholesky decompositions (#2088, #1840).\r\n\r\n  * Add LiSHT activation function (#2182).\r\n\r\n  * Add Valid and Same Padding for Transposed Convolution layer (#2163).\r\n\r\n  * Add CELU activation function (#2191)\r\n\r\n  * Add Log-Hyperbolic-Cosine Loss function (#2207)\r\n\r\n  * Change neural network types to avoid unnecessary use of rvalue references (#2259).\r\n\r\n  * Bump minimum Boost version to 1.58 (#2305).\r\n\r\n  * Refactor STB support so `HAS_STB` macro is not needed when compiling against mlpack (#2312).\r\n\r\n  * Add Hard Shrink Activation Function (#2186).\r\n\r\n  * Add Soft Shrink Activation Function (#2174).\r\n\r\n  * Add Hinge Embedding Loss Function (#2229).\r\n\r\n  * Add Cosine Embedding Loss Function (#2209).\r\n\r\n  * Add Margin Ranking Loss Function (#2264).\r\n\r\n  * Bugfix for incorrect parameter vector sizes in logistic regression and softmax regression (#2359).","2020-04-07T14:13:50",{"id":270,"version":271,"summary_zh":272,"released_at":273},71245,"3.2.1","Released Oct. 1, 2019.  (But I forgot to release it on Github; sorry about that.)\r\n\r\n - Enforce CMake version check for ensmallen #2032.\r\n - Fix CMake check for Armadillo version #2029.\r\n - Better handling of when STB is not installed #2033.\r\n - Fix Naive Bayes classifier computations in high dimensions #2022.","2019-11-26T15:31:42"]