pykan 文档导览与快速上手:Kolmogorov-Arnold Networks 的安装、入门与教程体系

发布时间:2026/9/14 11:24:28

pykan 文档导览与快速上手:Kolmogorov-Arnold Networks 的安装、入门与教程体系 pykan 文档导览与快速上手Kolmogorov-Arnold Networks 的安装、入门与教程体系【免费下载链接】pykanKolmogorov Arnold Networks项目地址: https://gitcode.com/GitHub_Trending/pyk/pykanKolmogorov-Arnold NetworksKAN是一种以 Kolmogorov-Arnold 表示定理为数学基础、把可学习激活函数放在边edge上的新型神经网络架构本仓库pykan是该论文的开源实现。本文以docs/index.rstSphinx 文档主入口为骨架完整梳理 pykan 的安装方式、依赖环境、入门路径与文档导航并结合仓库源码与intro.rst快速上手示例帮助你从零开始跑通一个 KAN 模型的完整生命周期初始化 → 训练 → 剪枝 → 符号化 → 提取公式。项目概览KAN 与 MLP 的本质差异pykan 是论文 KAN: Kolmogorov-Arnold Networks 的开源仓库对应论文 DOI 信息可查README.md。文档开篇即点明其核心定位Kolmogorov-Arnold Networks, inspired by the Kolmogorov-Arnold representation theorem, are promising alternatives of Multi-Layer Preceptrons (MLPs). KANs have activation functions on edges, whereas MLPs have activation functions on nodes.KAN 与 MLP 是对偶关系MLP在线性层之间用非线性激活函数σ作用在节点上MLP(x) W_{L-1} ∘ σ ∘ ⋯ ∘ W_1 ∘ σ ∘ W_0 ∘ xKAN把可学习的 1D 函数放置在边上网络是 KAN 层的堆叠KAN(x) Φ_{L-1} ∘ ⋯ ∘ Φ_1 ∘ Φ_0 ∘ x其中每个Φ都是一个函数矩阵Kolmogorov-Arnold 层。这一简单改变使 KAN 在精度与可解释性两方面都具备优势KAN 层可以可视化为全连接图每条边上是一条可学习的样条曲线训练后可以直接读出函数形态并通过符号回归自动还原成数学公式。这也是本仓库从文档到源码始终强调的两大关键词——accuracy 与 interpretability。文档主入口的首页配图见 docs/kan_plot.png直观展示了 KAN 训练后各边激活函数的可视化形态这正是边上的激活函数这一核心设计的直观体现。安装方式GitHub 源码安装与 PyPI 安装docs/index.rst提供了两种官方安装途径与README.md保持一致。方式一从 GitHub 源码安装推荐开发场景git clone https://github.com/KindXiaoming/pykan.git cd pykan pip install -e . # pip install -r requirements.txt # install requirements使用pip install -e .可编辑安装时setup.py会将包注册为pykan版本号0.2.8python_requires3.6packagessetuptools.find_packages()会自动收集kan/下的源码模块include_package_dataTrue会把assets/img/sum_symbol.png、assets/img/mult_symbol.png等绘图所需的符号资源一并打包。方式二从 PyPI 安装pip install pykan此外README.md还提供了面向开发者的快速通道pip install githttps://github.com/KindXiaoming/pykan.git以及可选的 Conda 环境方案conda create --name pykan-env python3.9.7后激活再执行上述安装命令。依赖环境要求docs/index.rst中列出的核心依赖与仓库根目录 requirements.txt 完全对应如下依赖包版本用途python3.9.7建议解释器版本README 注明 Python 3.9.7 or highermatplotlib3.6.2网络可视化与激活函数绘图numpy1.24.4数值计算scikit_learn1.1.3回归指标R²等辅助计算setuptools65.5.0包安装sympy1.11.1符号公式提取与 LaTeX 输出torch2.2.2深度学习后端tqdm4.66.2训练进度条pandas / seaborn / pyyaml2.0.1 等数据整理、统计绘图与 checkpoint 配置读写README 补充项安装时可在激活虚拟环境后执行pip install -r requirements.txt精确锁定上述版本。入门路径从 Hello KAN 到专题教程的文档地图docs/index.rst的 Get started 一节为读者规划了清晰的学习路径Quickstart快速上手docs/intro.rst即 Hello, KAN!KANs in Action动手实战docs/demos.rstAPI 演示与docs/examples.rst完整示例API高级接口docs/modules.rst。文档目录toctree包含七个部分对应仓库中的实际文档文件文档模块相对路径内容定位入门docs/intro.rstKAN 数学原理与 Hello KAN 完整演练APIdocs/modules.rst源码级 API 文档kan包API 演示docs/demos.rst12 个 API 专题索引、绘图、激活提取、初始化、网格、训练超参、剪枝、正则化、视频、设备、数据集、checkpoint示例docs/examples.rst15 个示例函数拟合、深层公式、分类、特殊函数、PDE、持续学习、奇点、相对论速度叠加、无监督学习、相变、结分类等可解释性docs/interp.rst12 个可解释性专题MultKAN、KAN Compiler、特征归因、对称性检验、Hessian、稀疏初始化等物理docs/physics.rst7 个物理应用拉格朗日量、守恒律、黑洞、本构律社区docs/community.rst社区贡献教程物理信息 KAN、蛋白质序列分类这些.rst文档与 tutorials 目录下的.ipynbNotebook 一一对应实际动手时可直接打开 Notebook 逐格运行。快速上手跑通一个 KAN 的完整生命周期以 docs/intro.rst 中的 Quickstart 为例完整演示从初始化到提取符号公式的全流程。这也是仓库根目录 hellokan.ipynb 的核心内容。1. 初始化 KANfrom kan import * # create a KAN: 2D inputs, 1D output, and 5 hidden neurons. # cubic spline (k3), 5 grid intervals (grid5). model KAN(width[2,5,1], grid5, k3, seed0)kan/__init__.py通过from .MultKAN import *导出核心类MultKANKAN 的别名。从 kan/MultKAN.py 的构造签名可以看到完整初始化参数width各层神经元数、grid网格区间数默认 3、k样条阶数默认 3、noise_scale样条初始噪声默认 0.3、base_fun残差基函数默认silu、grid_eps均匀网格与自适应网格的插值系数默认 0.02、grid_range网格范围默认 [-1,1]、seed随机种子默认 1、device默认 cpu等。每条边上的激活函数φ(x) sb_scale * b(x) sp_scale * spline(x)即基函数 样条的组合。2. 创建合成数据集# create dataset f(x,y) exp(sin(pi*x)y^2) f lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) x[:,[1]]**2) dataset create_dataset(f, n_var2) dataset[train_input].shape, dataset[train_label].shape # (torch.Size([1000, 2]), torch.Size([1000, 1]))create_dataset实现在 kan/utils.py默认train_num1000、test_num1000、输入范围[-1,1]支持f_modecol/row两种标签计算方式以及normalize_input/normalize_label标准化选项。返回的字典含train_input、train_label、test_input、test_label四个键后续model.train(dataset)直接消费。3. 初始化可视化与训练# plot KAN at initialization model(dataset[train_input]); model.plot(beta100) # train the model model.train(dataset, optLBFGS, steps20, lamb0.01, lamb_entropy10.) # train loss: 1.57e-01 | test loss: 1.31e-01 | reg: 2.05e01 : 100%|██| 20/20初始化状态下各边近似一条直线见 docs/intro_files/intro_15_0.png训练时默认使用仓库自带的 L-BFGS 优化器kan/LBFGS.pylamb控制 L1 稀疏正则强度lamb_entropy控制熵正则以鼓励激活函数稀疏化。训练 20 步后稀疏正则使得大量边被压平接近常函数网络结构趋于稀疏可解释见 docs/intro_files/intro_19_0.png。4. 剪枝从稀疏结构到更小模型model.prune() # 原地剪枝保留原形状 model.plot(maskTrue) # 用 mask 隐藏被剪掉的边 model model.prune() # 返回更小形状的剪枝模型 model(dataset[train_input]) model.plot()prune实现在 kan/MultKAN.py默认阈值node_th1e-2、edge_th3e-2低于阈值的节点与边会被移除网络自动收缩为更紧凑的形状这正是 KAN 可解释性即模型压缩的体现。5. 符号回归自动还原数学公式mode auto # manual if mode manual: # 手动指定各边符号函数 model.fix_symbolic(0,0,0,sin); model.fix_symbolic(0,1,0,x^2); model.fix_symbolic(1,0,0,exp); elif mode auto: # 自动从候选库中为每条边挑选最佳符号函数 lib [x,x^2,x^3,x^4,exp,log,sqrt,tanh,sin,abs] model.auto_symbolic(liblib)auto_symbolickan/MultKAN.py会为每条边遍历符号库、以 R² 为指标拟合最优符号函数输出如fixing (0,0,0) with sin, r20.999987252534279。符号库SYMBOLIC_LIB定义在 kan/utils.py包含x、x^2、sqrt、exp、log、sin、cos、tan、tanh、abs、gaussian、倒数族等 20 余个函数每个条目都提供数值实现、sympy 符号实现、拟合参数量与数值稳定性裁剪函数。继续训练至近机器精度后用model.symbolic_formula()输出最终公式model.train(dataset, optLBFGS, steps50) # train loss: 2.02e-10 | test loss: 1.13e-10 model.symbolic_formula()[0][0] # 1.0 * exp(1.0 * x_2^2 1.0 * sin(3.14 * x_1))网络自主还原出了f(x,y) exp(sin(πx) y²)验证了 KAN 先学结构、再符号化、最终得到闭式解的完整可解释性工作流。进阶技巧Efficiency 模式与超参调优关闭符号分支提升训练速度README.md特别强调当你1需要自己写训练循环而非使用model.fit()2不使用符号分支时务必在训练前调用model.speed()实现见 kan/MultKAN.py。否则符号分支默认开启而符号计算未做并行化会严重拖慢训练。面向科学问题的调参建议摘自 README从极简配置起步小 width、小 grid、小数据、无正则lamb0。例如 5 输入 1 输出任务可先试KAN(width[5,1,1], grid3, k3)不收敛时先加宽、再加深——这与 MLP 文献默认O(10²)宽度的习惯截然不同。追求精度优先使用网格扩展grid extension技术但要警惕过拟合。追求可解释性用model.train(lamb0.01)稀疏化逐步增大lamb剪枝出明显无用的神经元后调用model.prune()获得紧凑模型。判断拟合状态train/test loss 差距大说明过拟合优先减小grid比减小width更有效再考虑减小width。收尾模型表现良好后增大数据量做一次最终训练通常还能进一步提升效果。计算资源需求README.md说明tutorials 中的示例在单 CPU 上通常 10 分钟内可跑完论文中全部示例单 CPU 一天内可完成。KAN 训练 PDE 是最昂贵的场景单 CPU 可能需要数小时到数天。仓库示例规模偏向科研任务任务规模较大时建议使用 GPU模型支持device参数可参考 docs/API_demo/API_10_device.rst。结语从docs/index.rst这张文档地图出发你可以按安装 → Hello KAN → API 演示 → 专题示例 → 可解释性 → 物理应用的路径系统掌握 pykan。KAN 的核心心智模型是把可学习函数放在边上先以样条拟合任意函数再通过稀疏正则、剪枝与符号回归将网络翻译成人类可读的数学公式——这正是其在精度与可解释性上优于 MLP 的根本原因。建议从 hellokan.ipynb 开始逐格运行再按需查阅 docs/demos.rst 与 docs/examples.rst 中的专题教程。【免费下载链接】pykanKolmogorov Arnold Networks项目地址: https://gitcode.com/GitHub_Trending/pyk/pykan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/14 11:24:28

MATLAB实现QPSK锁相环载波同步仿真与参数设计

简介:这是QPSK通信系统载波同步提取的MATLAB实现,面向通信工程专业学生、MATLAB仿真入门者及需要完成课程设计的开发人员。程序以锁相环为核心,解决接收端载波相位偏差与频率偏移问题,实现信号同步解调,可直接运行并作…

2026/9/14 11:24:28

SpringBoot定时任务开发指南与最佳实践

1. SpringBoot定时任务概述在现代企业应用开发中,定时任务是不可或缺的基础功能。SpringBoot作为Java生态中最流行的微服务框架,提供了优雅的定时任务解决方案。与传统的Quartz等框架相比,SpringBoot定时任务具有配置简单、注解驱动、与Sprin…

2026/9/14 11:24:28

如何在日常生活中发现和创造个人意义

1. 什么才算是"有意义的事"?我们每天都会面临无数选择,从早晨睁眼到晚上入睡,大大小小的决定构成了生活的全部。但有多少人真正思考过:我正在做的事情有意义吗?这个问题看似简单,却困扰着无数现代…

2026/9/14 12:14:33

SEO与营销推广协同策略:双引擎流量增长实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 12:14:33

Allan方差图详解:IMU噪声分析与卡尔曼滤波Q矩阵设计

1. 为什么工程师第一次看Allan方差图时总在皱眉——它根本不是“普通方差” 你刚拿到IMU厂商提供的datasheet,翻到噪声分析章节,一眼看到那张横轴对数坐标、纵轴也是对数坐标的曲线图,标注着“dAllan Variance”或“Allan Deviation”&#x…

2026/9/14 12:14:33

SSM框架下航空机票预订系统开发:从建表到并发扣减实践

简介:一套基于SSM框架(Spring、SpringMVC、MyBatis)的航空机票预订系统毕业设计资源,面向计算机相关专业学生及需要快速搭建同类项目的开发者。系统覆盖管理员、会员、航班、订单、公告、留言等核心管理模块,具备完整的…

2026/9/14 12:14:33

RS485磁致伸缩位移传感器:选型、安装与现场调试实战指南

前阵子去现场处理一套液压压机的位置反馈问题,设备用的是带RS485信号的磁致伸缩位移传感器,PLC那边怎么读都读不到数。客户维护师傅第一句话就是“这传感器是不是坏了”,我过去拿万用表量了一下A/B线间电压,又查了一下站地址和波特…

2026/9/14 12:09:32

C++实现HTTP服务器及阿里云ECS部署实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/14 0:03:22

KCF目标跟踪算法与OTB工程实现:毕业设计实战解析

简介:这是一份基于KCF核相关滤波算法、融合尺度池与抗遮挡处理的目标检测跟踪MATLAB完整源码,主要面向计算机相关专业准备毕业设计、课程设计或期末大作业的学生,也适合需要项目实战练习的初学者。源码在OTB数据集上完成验证,能够…

2026/9/14 0:03:22

语音情感识别实战:Keras实现LSTM、CNN、SVM与MLP多模型对比

简介:面向语音情感识别入门与进阶开发者,这份基于Keras的项目源码完整实现了LSTM、CNN、SVM、MLP四种模型,兼容Python3.8与Keras/TensorFlow2环境。压缩包内含49个文件,大小约70.31MB,主体包括Python脚本、yaml/json配…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码