SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2404.19756 · ICLR · 2025

KAN: Kolmogorov-Arnold Networks

Max Tegmark, Marin Soljačić, Fabian Ruehle, Ziming Liu, Yixuan Wang, Sachin Vaidya, James Halverson, Thomas Hou

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 45 functions out of this paper's own repositories and ran 29 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

FunctionStatusWhere it lives
AF_KANLayer Ran hoangthangta/all-kan/models/af_kan.py
code served (permissive licence) · get_code("07caa2645c6f88dc")
BSplineFunction Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("b92aedeeb42c44a3")
ChebyKAN Ran cg80499/kan-gpt-2/transformer.py
pointer only (licence: NONE) · get_code("b6a3b5c6796392f6")
ChebyKANLayer Ran synodicmonth/chebykan/ChebyKANLayer.py
pointer only (licence: NONE) · get_code("d78f0ff6a36bad3a")
ChebyshevFunction Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("df26e00e41461ac5")
FourierBasisFunction Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("67e96346db6b0aeb")
JacobiKANLayer Ran spacelearner/jacobikan/JacobiKANLayer.py
pointer only (licence: NONE) · get_code("1710ab92a3464cb1")
KAN Ran 1ssb/torchkan/torchkan.py
code served (permissive licence) · get_code("0baa1b88f9939a21")
KAN Ran ivandrokin/torch-conv-kan/kans/kan.py
code served (permissive licence) · get_code("02d69923ac1319f1")
KAN Ran engichang1467/Simple-KAN/model.py
pointer only (licence: NONE) · get_code("ca2c6d9bc4073b91")
KANLayer Ran ivandrokin/torch-conv-kan/kans/kan.py
code served (permissive licence) · get_code("166660fec1a43c38")
KANLinear Ran firasbdarwish/convkan3d/src/ConvKAN3D/efficient_kan.py
pointer only (licence: GPL-3.0) · get_code("1c4b9e66c3895df6")
KANLinear Ran engichang1467/Simple-KAN/model.py
pointer only (licence: NONE) · get_code("ee552720e93579c6")
KANLinear Ran chenziwenhaoshuai/Vision-KAN/ekan.py
code served (permissive licence) · get_code("bba5f2e58a12a52a")
KANLinear Ran athanasiosdelis/faster-kan/efficient_kan/kan.py
code served (permissive licence) · get_code("cd044fcb8e3f44fc")
KANLinear Ran Blealtan/efficient-kan/src/efficient_kan/kan.py
code served (permissive licence) · get_code("28166672e87da391")
LinearKAN Ran Ipsedo/KolmogorovArnoldNetworks/kan/networks/networks.py
pointer only (licence: NONE) · get_code("c159d03d56ef3105")
PolynomialFunction Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("4d9332c12687c65a")
RadialBasisFunction Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("432049a474dabd46")
SplineConv2D Ran jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("e31c4c404b98d796")
chebyshevLobatto Ran jloveric/high-order-layers-torch/high_order_layers_torch/LagrangePolynomial.py
code served (permissive licence) · get_code("9c1513ccebbda096")
conv_transpose_wrapper Ran jloveric/high-order-layers-torch/high_order_layers_torch/FunctionalConvolutionTranspose.py
code served (permissive licence) · get_code("5ce9da957bc84eec")
conv_wrapper Ran jloveric/high-order-layers-torch/high_order_layers_torch/FunctionalConvolution.py
code served (permissive licence) · get_code("654325325ef70521")
get_lagrange_basis Ran jloveric/high-order-layers-torch/high_order_layers_torch/LagrangePolynomial.py
code served (permissive licence) · get_code("c9ec66053c2c6c3d")
max_abs Ran jloveric/high-order-layers-torch/high_order_layers_torch/utils.py
code served (permissive licence) · get_code("e6a067cf62cc8c8b")
max_abs_normalization Ran jloveric/high-order-layers-torch/high_order_layers_torch/utils.py
code served (permissive licence) · get_code("a6d502baf050617f")
max_abs_normalization_last Ran jloveric/high-order-layers-torch/high_order_layers_torch/utils.py
code served (permissive licence) · get_code("a15c9905e0c2add9")
scalar_to_list Ran jloveric/high-order-layers-torch/high_order_layers_torch/networks.py
code served (permissive licence) · get_code("463cbaa8879bc79d")
sparse_mask Ran kindxiaoming/pykan/kan/KANLayer.py
code served (permissive licence) · get_code("2f28fd290c4d9bd9")
AF_KAN Not yet run hoangthangta/all-kan/models/af_kan.py
code served (permissive licence) · get_code("b00cb7f7deabbeab")
ActivationFunction Not yet run Ipsedo/KolmogorovArnoldNetworks/kan/networks/networks.py
pointer only (licence: NONE) · get_code("36bad22a5b2a35bb")
FastKANConvLayer Not yet run jaouadt/kanu_net/src/fastkanconv.py
pointer only (licence: NONE) · get_code("5be468792b0cf15a")
InfoModule Not yet run Ipsedo/KolmogorovArnoldNetworks/kan/networks/networks.py
pointer only (licence: NONE) · get_code("b8d00a4f1cb48922")
KAN Not yet run chenziwenhaoshuai/Vision-KAN/ekan.py
code served (permissive licence) · get_code("9775b6b471f0efe7")
KAN Not yet run athanasiosdelis/faster-kan/efficient_kan/kan.py
code served (permissive licence) · get_code("0406a19e6e415352")
KAN Not yet run Blealtan/efficient-kan/src/efficient_kan/kan.py
code served (permissive licence) · get_code("32c87d6531990ab4")
KANLayer Not yet run kindxiaoming/pykan/kan/KANLayer.py
code served (permissive licence) · get_code("81f6b6bcc71a3151")
KANLayer Not yet run cg80499/kan-gpt-2/transformer.py
pointer only (licence: NONE) · get_code("6c165e56ec04e1b9")
LinearKanLayers Not yet run Ipsedo/KolmogorovArnoldNetworks/kan/networks/networks.py
pointer only (licence: NONE) · get_code("2c906ad0c6bcc8fb")
fixed_rotation_layer Not yet run jloveric/high-order-layers-torch/high_order_layers_torch/layers.py
code served (permissive licence) · get_code("6467947a4d7fb147")
get_feynman_dataset Not yet run KindXiaoming/pykan/kan/feynman.py
code served (permissive licence) · get_code("66c87ccdfecd9980")
next_nontrivial_operation Not yet run KindXiaoming/pykan/kan/compiler.py
code served (permissive licence) · get_code("5a7aee504b816c90")
pareto_frontier Not yet run KindXiaoming/pykan/kan/experiment.py
code served (permissive licence) · get_code("5a09c168cd818718")
runner1 Not yet run KindXiaoming/pykan/kan/experiment.py
code served (permissive licence) · get_code("2d265a6adde38491")
select_network Not yet run jloveric/high-order-layers-torch/high_order_layers_torch/modules.py
code served (permissive licence) · get_code("1e0e36dc3aa7b0f3")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Inspired by the Kolmogorov-Arnold representation theorem, we propose Kolmogorov-Arnold Networks (KANs) as promising alternatives to Multi-Layer Perceptrons (MLPs). While MLPs have fixed activation functions on nodes ("neurons"), KANs have learnable activation functions on edges ("weights"). KANs have no linear weights at all -every weight parameter is replaced by a univariate function parametrized as a spline. We show that this seemingly simple change makes KANs outperform MLPs in terms of accuracy and interpretability, on small-scale AI + Science tasks. For accuracy, smaller KANs can achieve comparable or better accuracy than larger MLPs in function fitting tasks. Theoretically and empirically, KANs possess faster neural scaling laws than MLPs. For interpretability, KANs can be intuitively visualized and can easily interact with human users. Through two examples in mathematics and physics, KANs are shown to be useful "collaborators" helping scientists (re)discover mathematical and physical laws. In summary, KANs are promising alternatives for MLPs, opening opportunities for further improving today's deep learning models which rely heavily on MLPs.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2404.19756")
get_code_for_paper("2404.19756")
have("2404.19756")

Connect an agent — have() is free.