项目介绍:Torch-Conv-KAN
torch-conv-kan
是一个利用 PyTorch 和 CUDA 加速的工具集合,用于训练、验证和量化卷积 Kolmogorov-Arnold 网络模型(KANs)。这是一个最新开发中的开源项目,重点评估其在 MNIST、CIFAR、TinyImagenet 和 Imagenet1k 数据集上的性能表现。
项目状态:正在开发中
近期更新
- 2024/05/13:卷积式 KALN 层已经发布。
- 2024/05/14:卷积式 KAN 和快速 KAN 层已经发布。
- 2024/05/15:卷积式 ChebyKAN 已发布。MNIST、CIFAR10 和 CIFAR100 基准测试已添加。
- 后续更新涉及各种新模型和层的引入与性能优化以及新的训练脚本提供
介绍卷积 KAN 层
卷积 KAN 层以 Kolmogorov-Arnold 表示定理为基础,试图通过在网络中使用可学习的激活函数和不同的多项式或基函数,例如 B-splines 和 Gram polynomials,比传统卷积层有更强的表达能力。在计算时,每个卷积核在输入数据上"滑动",进行相应函数的逐点运算,然后将结果累加为单个输出像素。
模型库
torch-conv-kan
提供了一系列基于 KAN 架构的神经网络模型选择:
- ResKANets:ResNet 风格的网络,使用 KAN 卷积替代常规卷积。
- DenseKANets:DenseNet 风格的网络,同样使用 KAN 卷积。
- VGGKAN:VGG 风格的模型,集成多种 KAN 卷积层。
- UKANet 和 U2KANet:U-net 风格的模型,基于 ResNet 块,使用 KAN 卷积。
性能指标
torch-conv-kan
在 MNIST 和 CIFAR 数据集上提供了竞争性基准测试结果。对于更大的数据集,如 Tiny Imagenet 和 Imagenet1k,模型也展现了一定的准确度与稳健性。
讨论
目前得到的结果仅为初步结果,模型架构需要进一步的探索与调整。在 MNIST 数据集上,Kolmogorov-Arnold 卷积网络表现卓著,但在 CIFAR-10 和 CIFAR-100 方面的表现相对逊色。接下来的工作将是寻找适合 KAN 卷积的架构,并尝试将其扩展至更复杂的数据集。
使用方法
torch-conv-kan
提供了简单易用的代码示例,以便用户快速上手。用户需要安装符合 CUDA 和 cuDNN 版本的 Python 和 PyTorch,随后可以通过指定配置文件和脚本来训练测试自己的数据集或模型。
python mnist_conv.py
基于 Accelerate 的训练
使用 Accelerate 加速工具来提升训练效率,并通过 Hydra 配置管理和 Wandb 日志监控实验和模型性能。通过克隆项目并安装依赖,即可按照配置文件启动训练脚本。
贡献与致谢
欢迎社区贡献和提出问题。项目基于多个开源实现进行构建,感谢这些贡献者的慷慨分享与研究探索。
文献引用
如果在科研工作中使用到本项目或者需要引用基线结果,请使用以下 BibTeX 条目。
(添加 BibTeX 条目以便引用)
torch-conv-kan
项目为多样且复杂的卷积网络领域提供了独特的视角,结合了现代深度学习和经典数学理论,有潜力在视觉任务中取得进一步的突破。