/tinyBIG

tinybig for deep function learning

Primary LanguagePythonMIT LicenseMIT

function_data


Introduction

tinybig is a Python library developed by the IFM Lab for deep function learning model designing and building.

Citation

If you find tinybig and RPN useful in your work, please cite the RPN paper as follows:

@article{Zhang2024RPN,
    title={RPN: Reconciled Polynomial Network Towards Unifying PGMs, Kernel SVMs, MLP and KAN},
    author={Jiawei Zhang},
    year={2024},
    eprint={2407.04819},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

Installation

You can install tinybig either via pip or directly from the github source code.

Install via Pip

pip install tinybig

Install from Source

git clone https://github.com/jwzhanggy/tinyBIG.git

After entering the downloaded source code directory, tinybig can be installed with the following command:

python setup.py install

If you don't have setuptools installed locally, please consider to first install setuptools:

pip install setuptools 

Install Dependency

Please download the requirements.txt file, and install all the dependency packages:

pip install -r requirements.txt

Verification

If you have successfully installed both tinybig and the dependency packages, now you can use tinybig in your projects.

To ensure that tinybig was installed correctly, we can verify the installation by running the sample python code as follows:

>>> import torch
>>> import tinybig as tb
>>> expansion_func = tb.expansion.taylor_expansion()
>>> expansion_func(torch.Tensor([[1, 2]]))

The output should be something like:

tensor([[1., 2., 1., 2., 2., 4.]])

Tutorials

Tutorial ID Tutorial Title Last Update
Tutorial 0 Quickstart Tutorial July 6, 2024
Tutorial 1 Data Expansion Functions July 7, 2024
Tutorial 2 Extended and Nested Data Expansion TBD

Examples

Example ID Example Title Released Date
Example 0 Failure of KAN on Sparse Data July 9, 2024
Example 1 Elementary Function Approximation July 7, 2024
Example 2 Composite Function Approximation July 8, 2024
Example 3 Feynman Function Approximation July 8, 2024
Example 4 MNIST Classification with Identity Reconciliation July 8, 2024
Example 5 MNIST Classification with Dual LPHM Reconciliation July 8, 2024
Example 6 CIFAR10 Image Object Recognition July 8, 2024
Example 7 IMDB Review Classification July 9, 2024
Example 8 AGNews Topic Classification July 9, 2024
Example 9 SST-2 Sentiment Classification July 9, 2024
Example 10 Iris Species Inference (Naive Probabilistic) July 9, 2024
Example 11 Diabetes Diagnosis (Comb. Probabilistic) July 9, 2024
Example 12 Banknote Authentication (Comb. Probabilistic) July 9, 2024

Library Organizations

Components Descriptions
tinybig a deep function learning library like torch.nn, deeply integrated with autograd
tinybig.expansion a library providing the "data expansion functions" for multi-modal data effective expansions
tinybig.reconciliation a library providing the "parameter reconciliation functions" for parameter efficient learning
tinybig.remainder a library providing the "remainder functions" for complementary information addition
tinybig.module a library providing the basic building blocks for RPN model designing and implementation
tinybig.model a library providing the RPN models for addressing various deep function learning tasks
tinybig.config a library providing model component instantiation from textual configuration descriptions
tinybig.learner a library providing the learners that can be used for RPN model training and testing
tinybig.data a library providing multi-modal datasets for solving various deep function learning tasks
tinybig.output a library providing the processing method interfaces for output processing, saving and loading
tinybig.metric a library providing the metrics that can be used for RPN model performance evaluation
tinybig.util a library of utility functions for RPN model design, implementation and learning

License & Copyright

Copyright © 2024 IFM Lab. All rights reserved.

  • tinybig source code is published under the terms of the MIT License.
  • tinybig's documentation and the RPN papers are licensed under a Creative Commons Attribution-Share Alike 4.0 Unported License (CC BY-SA 4.0).