pykan icon indicating copy to clipboard operation
pykan copied to clipboard

Kolmogorov Arnold Networks

Results 336 pykan issues
Sort by recently updated
recently updated
newest added

the tutorial example [API_10_device](https://github.com/KindXiaoming/pykan/blob/master/tutorials/API_10_device.ipynb) errors out with the below stack trace ``` description: 0%| | 0/50 [00:01

记录一些与此算法相关的点: 1. KAN除了论文中提及的一些分析,KAN这种做法,到底有那些优点和缺点? 连续vs.离散 对特别高维度的输入(比如图像,1024x1024,还是conv或者patch,然后在更小表示的feature上吗) 对于大量冗余信息的输入(比如图像,边缘比较敏感,可以一个对象的中间一大片颜色差不多没有纹理,信息量很小) 对于跨度很大的不同空间(比如从图片到label-id-int,比如从长长的文本tokend到类别ai) 从很模糊表示的张量到相对明晰的概念的获取,这个和抽象出符号化函数组合本质一样还是不一样? 被张量化优化的潜力 对参数初始的敏感程度 (比如用三角周期函数做激活函数/傅里叶级数思路设计网络,参数初始化比较考虑到初始化能覆盖不同频率,否则收敛就有问题) 2. 对于数学很专业的人来说,对逼近理论研究很深的人来说,如果知道至少当前逼近理论的全貌,如果从0来设计类似这种NN中的原子“逼近层”,会怎样? 与此相关的,从泰勒级数/Taylor series,到傅里叶级数Fourier series,到万能逼近定理universal approximation theorem,到KA表示定理Kolmogorov–Arnold representation theorem,还有好像Weierstrass approximation theorem/Stone–Weierstrass theorem,... 除了“无限逼近”的能力,还有哪些需要考虑的点呢? 我抛个砖: 数学部分:数值区间;连续离散;... 其他部分:参数多少;对应到硬件优化后的计算量;是否与输入参数个数强绑定;逼近速度;假设有一个上帝函数需要逼近,学习得到的和这个上帝函数的接近程度(假设有多种函数复合形式,在有限的数据和学习步骤下,和上帝函数的接近程度;可能新的测试数据有很大的差异);是不是一定追求参数最小化;参数最少化是不是就是最小描述;... 不同的算法实现,可能得到差异很大的表示?比如不同思路下去,有些是尽快将大的成分给逼近;有些是尽力不同成分都给逼近;有些是尽力将不同输入给解纠缠;甚至还可以设计出不同成分尽力正交的。 我们是依靠我们对问题的先验(假设我们知道一点点上帝函数的特征)来选择,还是怎么如何选择呢? 3....

KAN implementation overrides https://pytorch.org/docs/stable/generated/torch.nn.Module.html#torch.nn.Module.train If i embed KAN in a pytorch module and call a train on it it causes error, because KAN's train expects a dict

Hi Ziming, In Section 6 of your paper, you mentioned that KANs are practically 10X slower than MLPs. I am curious what you meant by it. Did you mean a...

I replaced a mlp of kanlayer like this: `class MLP_KAN(nn.Module): def __init__(self,config): super().__init__() self.in_dim=config.n_embd self.first_dim=config.n_embd //4 self.out_dim=config.n_embd //4 self.kan_1 = KANLayer(self.in_dim,self.first_dim,device="cuda") self.kan_2 = KANLayer(self.first_dim,self.out_dim,device="cuda") def forward(self,x): n,l,c = x.shape x...

![image](https://github.com/KindXiaoming/pykan/assets/52232153/ac1a6b6d-14ab-4bd9-883b-996078579270) simpler architecture?

``` # model is trained with device='cuda', but when we do: model2.initialize_from_another_model(model, dataset['train_input']); ``` it error out: ``` RuntimeError: Expected all tensors to be on the same device, but found...

So the use of splines is cool, but computationally expensive, and for large models storage of the parameters might become extremely large. Instead of a spline for each edge, what...

**Description** setuptools==65.5.0 version is vulnerable to Regular Expression Denial of Service (ReDoS) via crafted HTML package or custom PackageIndex page. **Recommendation:** Upgrade setuptools to version 65.5.1 or higher. **Changes Made:**...