[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ddbourgin--numpy-ml":3,"tool-ddbourgin--numpy-ml":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 真正成长为懂上",160784,2,"2026-04-19T11:32:54",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":76,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":77,"languages":78,"stars":83,"forks":84,"last_commit_at":85,"license":86,"difficulty_score":87,"env_os":88,"env_gpu":89,"env_ram":90,"env_deps":91,"category_tags":98,"github_topics":99,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":119,"updated_at":120,"faqs":121,"releases":152},9718,"ddbourgin\u002Fnumpy-ml","numpy-ml","Machine learning, in numpy","numpy-ml 是一个完全使用 NumPy 从零实现的机器学习算法库。它的核心目标并非追求极致的运行效率，而是提供一套代码清晰、逻辑透明的实现方案，帮助用户深入理解机器学习背后的数学原理与算法细节。\n\n在深度学习框架高度封装的今天，许多开发者难以窥见模型内部的运作机制。numpy-ml 通过摒弃高级自动微分工具，强制以基础数组运算构建模型，有效解决了“黑盒”学习的问题。它涵盖了从经典的高斯混合模型、隐马尔可夫模型，到复杂的神经网络组件（如 Transformer 注意力机制、LSTM、残差块）以及各类优化器和损失函数，甚至包括强化学习代理的完整实现。\n\n这款工具非常适合机器学习研究人员、高校学生以及希望夯实算法基础的开发者使用。对于想要亲手推导反向传播、探究变分推断过程或自定义新型网络层的技术人员而言，numpy-ml 提供了绝佳的“白盒”参考范本。虽然其运行速度不如 TensorFlow 或 PyTorch 等生产级框架，但其极高的代码可读性使其成为教学演示、算法原型验证及底层原理研究的理想选择。","# numpy-ml\nEver wish you had an inefficient but somewhat legible collection of machine\nlearning algorithms implemented exclusively in NumPy? No?\n\n## Installation\n\n### For rapid experimentation\nTo use this code as a starting point for ML prototyping \u002F experimentation, just clone the repository, create a new [virtualenv](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvirtualenv\u002F), and start hacking:\n\n```sh\n$ git clone https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml.git\n$ cd numpy-ml && virtualenv npml && source npml\u002Fbin\u002Factivate\n$ pip3 install -r requirements-dev.txt\n```\n\n### As a package\nIf you don't plan to modify the source, you can also install numpy-ml as a\nPython package: `pip3 install -u numpy_ml`.\n\nThe reinforcement learning agents train on environments defined in the [OpenAI\ngym](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym). To install these alongside numpy-ml, you\ncan use `pip3 install -u 'numpy_ml[rl]'`.\n\n## Documentation\nFor more details on the available models, see the [project documentation](https:\u002F\u002Fnumpy-ml.readthedocs.io\u002F).\n\n## Available models\n\u003Cdetails>\n  \u003Csummary>Click to expand!\u003C\u002Fsummary>\n\n1. **Gaussian mixture model**\n    - EM training\n\n2. **Hidden Markov model**\n    - Viterbi decoding\n    - Likelihood computation\n    - MLE parameter estimation via Baum-Welch\u002Fforward-backward algorithm\n\n3. **Latent Dirichlet allocation** (topic model)\n    - Standard model with MLE parameter estimation via variational EM\n    - Smoothed model with MAP parameter estimation via MCMC\n\n4. **Neural networks**\n    * Layers \u002F Layer-wise ops\n        - Add\n        - Flatten\n        - Multiply\n        - Softmax\n        - Fully-connected\u002FDense\n        - Sparse evolutionary connections\n        - LSTM\n        - Elman-style RNN\n        - Max + average pooling\n        - Dot-product attention\n        - Embedding layer\n        - Restricted Boltzmann machine (w. CD-n training)\n        - 2D deconvolution (w. padding and stride)\n        - 2D convolution (w. padding, dilation, and stride)\n        - 1D convolution (w. padding, dilation, stride, and causality)\n    * Modules\n        - Bidirectional LSTM\n        - ResNet-style residual blocks (identity and convolution)\n        - WaveNet-style residual blocks with dilated causal convolutions\n        - Transformer-style multi-headed scaled dot product attention\n    * Regularizers\n        - Dropout\n    * Normalization\n        - Batch normalization (spatial and temporal)\n        - Layer normalization (spatial and temporal)\n    * Optimizers\n        - SGD w\u002F momentum\n        - AdaGrad\n        - RMSProp\n        - Adam\n    * Learning Rate Schedulers\n        - Constant\n        - Exponential\n        - Noam\u002FTransformer\n        - Dlib scheduler\n    * Weight Initializers\n        - Glorot\u002FXavier uniform and normal\n        - He\u002FKaiming uniform and normal\n        - Standard and truncated normal\n    * Losses\n        - Cross entropy\n        - Squared error\n        - Bernoulli VAE loss\n        - Wasserstein loss with gradient penalty\n        - Noise contrastive estimation loss\n    * Activations\n        - ReLU\n        - Tanh\n        - Affine\n        - Sigmoid\n        - Leaky ReLU\n        - ELU\n        - SELU\n        - GELU\n        - Exponential\n        - Hard Sigmoid\n        - Softplus\n    * Models\n        - Bernoulli variational autoencoder\n        - Wasserstein GAN with gradient penalty\n        - word2vec encoder with skip-gram and CBOW architectures\n    * Utilities\n        - `col2im` (MATLAB port)\n        - `im2col` (MATLAB port)\n        - `conv1D`\n        - `conv2D`\n        - `deconv2D`\n        - `minibatch`\n\n5. **Tree-based models**\n    - Decision trees (CART)\n    - [Bagging] Random forests\n    - [Boosting] Gradient-boosted decision trees\n\n6. **Linear models**\n    - Ridge regression\n    - Logistic regression\n    - Ordinary least squares\n    - Weighted linear regression\n    - Generalized linear model (log, logit, and identity link)\n    - Gaussian naive Bayes classifier\n    - Bayesian linear regression w\u002F conjugate priors\n        - Unknown mean, known variance (Gaussian prior)\n        - Unknown mean, unknown variance (Normal-Gamma \u002F Normal-Inverse-Wishart prior)\n\n7. **n-Gram sequence models**\n    - Maximum likelihood scores\n    - Additive\u002FLidstone smoothing\n    - Simple Good-Turing smoothing\n\n8. **Multi-armed bandit models**\n    - UCB1\n    - LinUCB\n    - Epsilon-greedy\n    - Thompson sampling w\u002F conjugate priors\n        - Beta-Bernoulli sampler\n    - LinUCB\n\n8. **Reinforcement learning models**\n    - Cross-entropy method agent\n    - First visit on-policy Monte Carlo agent\n    - Weighted incremental importance sampling Monte Carlo agent\n    - Expected SARSA agent\n    - TD-0 Q-learning agent\n    - Dyna-Q \u002F Dyna-Q+ with prioritized sweeping\n\n9. **Nonparameteric models**\n    - Nadaraya-Watson kernel regression\n    - k-Nearest neighbors classification and regression\n    - Gaussian process regression\n\n10. **Matrix factorization**\n    - Regularized alternating least-squares\n    - Non-negative matrix factorization\n\n11. **Preprocessing**\n    - Discrete Fourier transform (1D signals)\n    - Discrete cosine transform (type-II) (1D signals)\n    - Bilinear interpolation (2D signals)\n    - Nearest neighbor interpolation (1D and 2D signals)\n    - Autocorrelation (1D signals)\n    - Signal windowing\n    - Text tokenization\n    - Feature hashing\n    - Feature standardization\n    - One-hot encoding \u002F decoding\n    - Huffman coding \u002F decoding\n    - Byte pair encoding \u002F decoding\n    - Term frequency-inverse document frequency (TF-IDF) encoding\n    - MFCC encoding\n\n12. **Utilities**\n    - Similarity kernels\n    - Distance metrics\n    - Priority queue\n    - Ball tree\n    - Discrete sampler\n    - Graph processing and generators\n\u003C\u002Fdetails>\n\n## Contributing\n\nAm I missing your favorite model? Is there something that could be cleaner \u002F\nless confusing? Did I mess something up? Submit a PR! The only requirement is\nthat your models are written with just the [Python standard\nlibrary](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002F) and [NumPy](https:\u002F\u002Fwww.numpy.org\u002F). The\n[SciPy library](https:\u002F\u002Fscipy.github.io\u002Fdevdocs\u002F) is also permitted under special\ncircumstances ;)\n\nSee full contributing guidelines [here](.\u002FCONTRIBUTING.md).\n","# numpy-ml\n你是否曾希望拥有一套虽然效率不高，但代码相对易读的机器学习算法集合，且这些算法完全用 NumPy 实现？没有吗？\n\n## 安装\n\n### 用于快速实验\n若想将此代码作为机器学习原型设计或实验的起点，只需克隆仓库、创建一个新的 [virtualenv](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvirtualenv\u002F)，然后开始开发：\n\n```sh\n$ git clone https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml.git\n$ cd numpy-ml && virtualenv npml && source npml\u002Fbin\u002Factivate\n$ pip3 install -r requirements-dev.txt\n```\n\n### 作为包安装\n如果你不打算修改源码，也可以将 numpy-ml 作为一个 Python 包安装：`pip3 install -u numpy_ml`。\n\n强化学习智能体在 [OpenAI Gym](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fgym) 中定义的环境中进行训练。若要与 numpy-ml 一起安装这些环境，可以使用 `pip3 install -u 'numpy_ml[rl]'`。\n\n## 文档\n有关可用模型的更多详细信息，请参阅 [项目文档](https:\u002F\u002Fnumpy-ml.readthedocs.io\u002F)。\n\n## 可用模型\n\u003Cdetails>\n  \u003Csummary>点击展开！\u003C\u002Fsummary>\n\n1. **高斯混合模型**\n    - EM 训练\n\n2. **隐马尔可夫模型**\n    - 维特比解码\n    - 似然计算\n    - 使用 Baum-Welch\u002F前向后向算法进行最大似然参数估计\n\n3. **潜在狄利克雷分配**（主题模型）\n    - 标准模型，使用变分 EM 进行最大似然参数估计\n    - 平滑模型，使用 MCMC 进行最大后验参数估计\n\n4. **神经网络**\n    * 层 \u002F 层级操作\n        - 加法\n        - 展平\n        - 乘法\n        - Softmax\n        - 全连接层\n        - 稀疏进化连接\n        - LSTM\n        - Elman 风格的 RNN\n        - 最大池化 + 平均池化\n        - 点积注意力机制\n        - 嵌入层\n        - 受限玻尔兹曼机（使用 CD-n 训练）\n        - 二维反卷积（带填充和步幅）\n        - 二维卷积（带填充、膨胀和步幅）\n        - 一维卷积（带填充、膨胀、步幅和因果性）\n    * 模块\n        - 双向 LSTM\n        - ResNet 风格的残差块（恒等映射和卷积）\n        - WaveNet 风格的残差块，带有扩张的因果卷积\n        - Transformer 风格的多头缩放点积注意力机制\n    * 正则化器\n        - Dropout\n    * 归一化\n        - 批量归一化（空间和时间）\n        - 层归一化（空间和时间）\n    * 优化器\n        - 带动量的 SGD\n        - AdaGrad\n        - RMSProp\n        - Adam\n    * 学习率调度器\n        - 常数\n        - 指数衰减\n        - Noam\u002FTransformer 调度器\n        - Dlib 调度器\n    * 权重初始化器\n        - Glorot\u002FXavier 均匀和正态分布\n        - He\u002FKaiming 均匀和正态分布\n        - 标准和截断正态分布\n    * 损失函数\n        - 交叉熵\n        - 均方误差\n        - 伯努利 VAE 损失\n        - 带梯度惩罚的 Wasserstein 损失\n        - 噪声对比估计损失\n    * 激活函数\n        - ReLU\n        - Tanh\n        - Affine\n        - Sigmoid\n        - Leaky ReLU\n        - ELU\n        - SELU\n        - GELU\n        - Exponential\n        - Hard Sigmoid\n        - Softplus\n    * 模型\n        - 伯努利变分自编码器\n        - 带梯度惩罚的 Wasserstein GAN\n        - word2vec 编码器，支持 skip-gram 和 CBOW 架构\n    * 工具\n        - `col2im`（MATLAB 移植版）\n        - `im2col`（MATLAB 移植版）\n        - `conv1D`\n        - `conv2D`\n        - `deconv2D`\n        - `minibatch`\n\n5. **基于树的模型**\n    - 决策树（CART）\n    - [Bagging] 随机森林\n    - [Boosting] 梯度提升决策树\n\n6. **线性模型**\n    - 岭回归\n    - 逻辑回归\n    - 最小二乘法\n    - 加权线性回归\n    - 广义线性模型（log、logit 和 identity link）\n    - 高斯朴素贝叶斯分类器\n    - 使用共轭先验的贝叶斯线性回归\n        - 均值未知、方差已知（高斯先验）\n        - 均值和方差均未知（Normal-Gamma \u002F Normal-Inverse-Wishart 先验）\n\n7. **n-gram 序列模型**\n    - 最大似然得分\n    - 加法 \u002F Lidstone 平滑\n    - Simple Good-Turing 平滑\n\n8. **多臂老虎机模型**\n    - UCB1\n    - LinUCB\n    - Epsilon-greedy\n    - 使用共轭先验的汤普森采样\n        - Beta-Bernoulli 采样器\n    - LinUCB\n\n8. **强化学习模型**\n    - 交叉熵方法智能体\n    - 第一次访问的策略 Monte Carlo 智能体\n    - 加权增量重要性采样的 Monte Carlo 智能体\n    - 预期 SARSA 智能体\n    - TD-0 Q-learning 智能体\n    - Dyna-Q \u002F Dyna-Q+，结合优先扫荡算法\n\n9. **非参数模型**\n    - Nadaraya-Watson 核回归\n    - k-近邻分类与回归\n    - 高斯过程回归\n\n10. **矩阵分解**\n    - 正则化交替最小二乘法\n    - 非负矩阵分解\n\n11. **预处理**\n    - 离散傅里叶变换（一维信号）\n    - 离散余弦变换（II 型）（一维信号）\n    - 双线性插值（二维信号）\n    - 最近邻插值（一维和二维信号）\n    - 自相关（一维信号）\n    - 信号加窗\n    - 文本分词\n    - 特征哈希\n    - 特征标准化\n    - one-hot 编码 \u002F 解码\n    - Huffman 编码 \u002F 解码\n    - 字节对编码 \u002F 解码\n    - 词频-逆文档频率（TF-IDF）编码\n    - MFCC 编码\n\n12. **工具**\n    - 相似核\n    - 距离度量\n    - 优先队列\n    - Ball 树\n    - 离散采样器\n    - 图处理与生成器\n\n\u003C\u002Fdetails>\n\n## 贡献\n我是否遗漏了你最喜欢的模型？有没有哪些地方可以做得更清晰或更不容易混淆？是不是我哪里写错了？提交一个 PR 吧！唯一的要求是你的模型必须仅使用 [Python 标准库](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002F) 和 [NumPy](https:\u002F\u002Fwww.numpy.org\u002F) 编写。在特殊情况下，也可以使用 [SciPy 库](https:\u002F\u002Fscipy.github.io\u002Fdevdocs\u002F) ;)\n\n完整的贡献指南请参见 [这里](.\u002FCONTRIBUTING.md)。","# numpy-ml 快速上手指南\n\n`numpy-ml` 是一个完全使用 NumPy（及 Python 标准库）实现的机器学习算法集合。它的核心目标不是追求极致的运行效率，而是提供**清晰、可读性强**的代码实现，非常适合用于学习算法原理、教学演示或快速原型验证。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：推荐 Python 3.6+\n*   **核心依赖**：\n    *   `NumPy`\n    *   `virtualenv` (推荐用于隔离环境)\n*   **可选依赖**：\n    *   若需使用强化学习示例，需安装 `gym` (OpenAI Gym)。\n\n> **国内加速建议**：在安装依赖时，建议使用清华或阿里镜像源以提升下载速度。\n> 例如：`pip3 install -r requirements-dev.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n您可以根据需求选择以下两种安装方式之一：\n\n### 方式一：源码克隆（推荐用于学习与实验）\n如果您打算阅读源码、修改算法或进行原型开发，建议直接克隆仓库并使用虚拟环境。\n\n```sh\n# 1. 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml.git\n\n# 2. 进入目录并创建虚拟环境\ncd numpy-ml\nvirtualenv npml\n\n# 3. 激活虚拟环境\n# Linux\u002FmacOS:\nsource npml\u002Fbin\u002Factivate\n# Windows:\nnpml\\Scripts\\activate\n\n# 4. 安装开发依赖 (建议使用国内镜像加速)\npip3 install -r requirements-dev.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：作为 Python 包安装\n如果您仅需调用库功能而不需要修改源码，可直接通过 pip 安装。\n\n```sh\n# 安装基础版\npip3 install numpy_ml -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n\n# 安装包含强化学习环境的版本 (需预先安装 gym)\npip3 install 'numpy_ml[rl]' -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\n`numpy-ml` 的模块结构清晰，通常位于 `numpy_ml.\u003Ccategory>.\u003Cmodel>` 路径下。以下以**线性回归**和**神经网络**为例展示最简单的用法。\n\n### 示例 1：普通最小二乘法 (Ordinary Least Squares)\n\n```python\nimport numpy as np\nfrom numpy_ml.linear_models import OLS\n\n# 1. 准备数据\n# X: 特征矩阵 (N samples, D features), y: 目标向量\nX = np.random.randn(100, 5)\ntrue_weights = np.array([1.5, -2.0, 0.5, 0.0, 3.0])\ny = X @ true_weights + np.random.normal(0, 0.1, size=100)\n\n# 2. 初始化并训练模型\nmodel = OLS()\nmodel.fit(X, y)\n\n# 3. 预测与评估\ny_pred = model.predict(X)\nprint(\"Estimated weights:\", model.theta)\nprint(\"MSE:\", np.mean((y - y_pred) ** 2))\n```\n\n### 示例 2：构建简单的前馈神经网络\n\n```python\nfrom numpy_ml.neural_nets.modules import FullyConnected, ReLU\nfrom numpy_ml.neural_nets.optimizers import Adam\nfrom numpy_ml.neural_nets.losses import CrossEntropyLoss\nfrom numpy_ml.neural_nets import NeuralNet\n\n# 定义网络层结构\nlayers = [\n    FullyConnected(n_in=784, n_out=128),\n    ReLU(),\n    FullyConnected(n_in=128, n_out=10),\n]\n\n# 初始化模型\nmodel = NeuralNet(\n    layers=layers,\n    optimizer=Adam(lr=0.001),\n    loss_func=CrossEntropyLoss()\n)\n\n# 假设已有预处理好的数据 X_train (N, 784) 和 y_train (N,)\n# model.fit(X_train, y_train, n_epochs=10) \n# 注意：实际使用时需传入具体的 numpy 数组数据\n```\n\n### 可用模型概览\n该库涵盖了广泛的算法，主要包括：\n*   **经典模型**：高斯混合模型 (GMM)、隐马尔可夫模型 (HMM)、LDA 主题模型。\n*   **深度学习**：CNN (1D\u002F2D), RNN (LSTM\u002FGRU), Transformer 组件，VAE, GAN。\n*   **树模型**：决策树 (CART), 随机森林，梯度提升树 (GBDT)。\n*   **其他**：KNN, 高斯过程，多臂老虎机，强化学习代理等。\n\n详细文档请参阅：[https:\u002F\u002Fnumpy-ml.readthedocs.io\u002F](https:\u002F\u002Fnumpy-ml.readthedocs.io\u002F)","某高校机器学习课程讲师正计划为学生设计一套从零推导神经网络反向传播算法的教学实验，旨在让学生深入理解模型内部机制而非仅调用黑盒 API。\n\n### 没有 numpy-ml 时\n- 讲师需花费数周时间手动编写基础层（如卷积、LSTM）的纯 NumPy 实现，极易因矩阵维度对齐错误导致调试困难。\n- 学生难以区分是数学推导错误还是代码实现 bug，因为缺乏标准、可读性强的参考代码进行比对。\n- 教学进度严重受阻，原本用于讲解注意力机制或残差连接等高级架构的时间被基础算子开发占用。\n- 现有的工业级框架（如 PyTorch）封装过度，隐藏了梯度计算细节，无法满足“白盒化”教学需求。\n\n### 使用 numpy-ml 后\n- 讲师直接复用 numpy-ml 中现成的卷积、RNN 及 Transformer 模块，这些代码仅依赖 NumPy 且逻辑透明，大幅缩短备课周期。\n- 学生可逐行阅读源码，清晰看到从 Softmax 激活到 Adam 优化器的每一步数学运算，快速定位自身推导偏差。\n- 课程得以覆盖更前沿的模型结构，如利用内置的 WaveNet 残差块和多头注意力机制进行深度演示。\n- 借助项目中包含的 Viterbi 解码和变分推断等经典算法实现，学生能直观对比不同训练策略的收敛过程。\n\nnumpy-ml 通过将复杂的机器学习算法还原为可读性极高的纯 NumPy 代码，完美填补了理论公式与工业黑盒框架之间的教学鸿沟。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fddbourgin_numpy-ml_d3e10780.png","ddbourgin","David Bourgin","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fddbourgin_6534e822.jpg",null,"Brooklyn, NY","https:\u002F\u002Fgithub.com\u002Fddbourgin",[79],{"name":80,"color":81,"percentage":82},"Python","#3572A5",100,16332,3768,"2026-04-19T07:13:33","GPL-3.0",1,"Linux, macOS, Windows","未说明 (该库仅依赖 NumPy，设计用于 CPU 运行，无 GPU 加速需求)","未说明",{"notes":92,"python":93,"dependencies":94},"该项目旨在提供仅使用 Python 标准库和 NumPy 实现的机器学习算法，代码可读性强但运行效率较低。若需使用强化学习功能，需额外安装 OpenAI Gym 环境。不支持 SciPy（除特殊情况外）。","3.x (需支持 pip3 及标准库)",[95,96,97],"numpy","virtualenv","gym (可选，用于强化学习)",[14,15],[100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],"machine-learning","neural-networks","topic-modeling","gaussian-mixture-models","hidden-markov-models","gradient-boosting","bayesian-inference","wavenet","vae","resnet","lstm","wgan-gp","attention","reinforcement-learning","good-turing-smoothing","knn","mfcc","gaussian-processes","word2vec","2026-03-27T02:49:30.150509","2026-04-20T04:06:01.734366",[122,127,132,137,142,147],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},43644,"为什么在 LogisticRegression 的梯度计算中，L2 正则化项表现为 `gamma * beta`？","这是因为正则化惩罚项定义为 `(gamma \u002F 2) * ||beta||^2`（即 L2 范数的平方）。当我们对 beta 求导时，系数 1\u002F2 与平方运算产生的系数 2 相互抵消，最终得到的梯度项就是 `gamma * beta`。如果是 L1 正则化，惩罚项则是 `gamma * sum(|beta|)`，其梯度为 `gamma * sign(beta)`。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F53",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},43645,"如何优化激活函数（如 Sigmoid）的梯度计算以提高效率？","可以通过复用前向传播的计算结果来优化。例如，在计算 Sigmoid 的梯度 `f'(x) = f(x) * (1 - f(x))` 时，不要重复计算 `self.fn(x)`。应先计算一次 `fn_x = self.fn(x)` 并存储，然后直接返回 `fn_x * (1 - fn_x)`。虽然这会占用少量额外内存，但会在函数结束后立即释放，能显著减少计算量并提高代码清晰度。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F33",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},43646,"我想贡献一个新的模型（如 K-means），但在测试中与 Sklearn 的结果不一致怎么办？","如果自定义模型与 Sklearn 模型在随机数据上的预测准确率存在波动（例如有时你的好，有时 Sklearn 的好），这通常与随机生成数据的分布或初始化有关。建议直接对比两个模型的预测结果（`pred1` 和 `pred2`），逐个数据点检查分类是否一致，以定位差异来源。此外，可以直接提交 PR，维护者会协助一起调试代码以找出测试失败的具体原因。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F31",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},43647,"如何实现支持实时更新的在线线性回归（Online Linear Regression）？","可以使用递归最小二乘法（Recursive Least Squares, RLS）来实现在线线性回归，这样无需每次有新数据点时都重新训练整个模型。实现思路是：先使用部分数据初始化模型，然后遍历新的数据点，逐个调用更新方法调整模型参数。测试时，可以将结果与 Sklearn 的标准线性回归模型在完整数据集上的拟合结果进行对比（使用 R² 分数等指标），以验证在线更新的有效性。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F70",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},43648,"在卷积层的反向传播中，应该使用稠密权重矩阵 W 还是稀疏权重矩阵 W_sparse？","在涉及稀疏连接的层中，反向传播计算输入梯度 `dX` 时，应该使用稀疏权重矩阵 `W_sparse` 而不是稠密矩阵 `W`。正确的代码应为 `dX = dZ @ W_sparse.T`。使用错误的矩阵会导致梯度计算不准确。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F48",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},43649,"在处理膨胀卷积（Dilated Convolution）时，切片索引的计算公式是什么？","如果变量 `fr` 和 `fc` 已经代表了膨胀后的大小（dilated size），那么在计算切片索引时，不应再乘以膨胀率或加上额外的偏移量。正确的索引计算方式应简化为：`i0, i1 = i * s, (i * s) + fr` 以及 `j0, j1 = j * s, (j * s) + fc`。原有的复杂公式 `(i * s) + fr * (d + 1) - d` 是错误的，因为它重复计算了膨胀效应。","https:\u002F\u002Fgithub.com\u002Fddbourgin\u002Fnumpy-ml\u002Fissues\u002F32",[]]