# This is Grand Lantern neural network library рџЏ®
The main purpose of this library is to understand - what is happening under the hood of popular deep learning frameworks.
Also, it can be used to build your own ideas - no special knowledge for thst you need! 
This library is written only using numpy (maybe cupy in future), you can see every calculation in neural network!
## How to install в›ЏпёЏ
Just put this command to terminal
```commandline
pip install grandlantern
```
## Get started рџљЂ
### 1. Import library
```python
import grandlantern
```
### 2. Define Data Iterator
```python
from grandlantern.dataiterators import DatasetIterator, TableDataset
batch_size = 100
my_dataset_iterator = DatasetIterator(dataset=TableDataset(), batch_size=batch_size)
```
### 3. Choose optimizer
```python
from grandlantern.optimizers import SGD
my_optimizer = SGD(learning_rate=0.01)
```
### 4. Build model
```python
from grandlantern import model
from grandlantern.metrics import CrossEntropy, Accuracy
NN = model(n_epochs=100,
           dataset_iterator=my_dataset_iterator,
           loss_function=CrossEntropy(),
           metric_function=Accuracy(),
           optimizer=my_optimizer)
```
### 5. Add layers
```python
from grandlantern.layers import LinearLayer
from grandlantern.layers import Sigmoid, ReLU, SoftMax
NN.add_layer(LinearLayer(n_neurons=100, activation=Sigmoid(), biased=True))
NN.add_layer(LinearLayer(n_neurons=50, activation=ReLU(), biased=True))
NN.add_layer(LinearLayer(n_neurons=10, activation=SoftMax(), biased=True))
```
Also layers can be added using attribute model.layers:
```python
from grandlantern.layers import LinearLayer
from grandlantern.layers import Sigmoid, ReLU, SoftMax
NN.layers = 
[
    LinearLayer(n_neurons=100, activation=Sigmoid(), biased=True),
    LinearLayer(n_neurons=50, activation=ReLU(), biased=True)
    LinearLayer(n_neurons=10, activation=SoftMax(), biased=True)
]
```
To look at the model structure the command print can be used:
```python
print(NN)
```
### 6. Train model
Inputs for training must be numpy arrays. There is also option to validate model on test data while training 
(X_test and y_test are optional).
```python
NN.fit(X_train, y_train, X_test, y_test)
```
### 7. Use model
Input for prediction must be numpy array.
```python
y_pred = NN.predict(X_test)
```
## What is supported now вњ…
### Layers
* Linear Layer (LinearLayer)
* Image Convolutional Layer (Conv2DLayer)
* Batch Normalization Layer (BatchNormLayer)
* Recurrent Layer (RecurrentLayer)
* RNN Layer (RNNLayer)
* Flatten Layer (FlattenLayer)
### Optimizers
* SGD
* NAG
* Adagrad
* Adam
### Datasets and Iterators
* Dataset Iterator with shuffle
* Table Dataset
* Image Dataset
* Sequence Dataset
### Regularization
* L1, L2, Elastic Net
* Dropout Layer (DropOutLayer)
## What will be done рџ“ќ
### New Layers
* Bidirectional RNN
* LSTM, GRU layers
* Attention layers
* Seq2seq model
* Transformers
* Pooling layers
### GPU Accelaration using cupy
### Some more optimizers
### Preprocessing modules
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": "https://github.com/grand-yarl/grand_lantern",
    "name": "grandlantern",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "deeplearn",
    "author": "grandyarl",
    "author_email": "grand_yarl@mail.com",
    "download_url": "https://files.pythonhosted.org/packages/9d/fe/16cf6c12f5e62bbb4cfc94c02f9c380252fb446411533b68d4d7364d5d93/grandlantern-0.0.18.tar.gz",
    "platform": null,
    "description": "# This is Grand Lantern neural network library \u0440\u045f\u040f\u00ae\r\nThe main purpose of this library is to understand - what is happening under the hood of popular deep learning frameworks.\r\nAlso, it can be used to build your own ideas - no special knowledge for thst you need! \r\n\r\nThis library is written only using numpy (maybe cupy in future), you can see every calculation in neural network!\r\n\r\n## How to install \u0432\u203a\u040f\u043f\u0451\u040f\r\n\r\nJust put this command to terminal\r\n\r\n```commandline\r\npip install grandlantern\r\n```\r\n\r\n## Get started \u0440\u045f\u0459\u0402\r\n\r\n### 1. Import library\r\n\r\n```python\r\nimport grandlantern\r\n```\r\n\r\n### 2. Define Data Iterator\r\n\r\n```python\r\nfrom grandlantern.dataiterators import DatasetIterator, TableDataset\r\n\r\nbatch_size = 100\r\nmy_dataset_iterator = DatasetIterator(dataset=TableDataset(), batch_size=batch_size)\r\n```\r\n\r\n### 3. Choose optimizer\r\n\r\n```python\r\nfrom grandlantern.optimizers import SGD\r\n\r\nmy_optimizer = SGD(learning_rate=0.01)\r\n```\r\n\r\n### 4. Build model\r\n\r\n```python\r\nfrom grandlantern import model\r\nfrom grandlantern.metrics import CrossEntropy, Accuracy\r\n\r\nNN = model(n_epochs=100,\r\n           dataset_iterator=my_dataset_iterator,\r\n           loss_function=CrossEntropy(),\r\n           metric_function=Accuracy(),\r\n           optimizer=my_optimizer)\r\n```\r\n\r\n### 5. Add layers\r\n\r\n```python\r\nfrom grandlantern.layers import LinearLayer\r\nfrom grandlantern.layers import Sigmoid, ReLU, SoftMax\r\n\r\nNN.add_layer(LinearLayer(n_neurons=100, activation=Sigmoid(), biased=True))\r\nNN.add_layer(LinearLayer(n_neurons=50, activation=ReLU(), biased=True))\r\nNN.add_layer(LinearLayer(n_neurons=10, activation=SoftMax(), biased=True))\r\n```\r\n\r\nAlso layers can be added using attribute model.layers:\r\n```python\r\nfrom grandlantern.layers import LinearLayer\r\nfrom grandlantern.layers import Sigmoid, ReLU, SoftMax\r\n\r\nNN.layers = \r\n[\r\n    LinearLayer(n_neurons=100, activation=Sigmoid(), biased=True),\r\n    LinearLayer(n_neurons=50, activation=ReLU(), biased=True)\r\n    LinearLayer(n_neurons=10, activation=SoftMax(), biased=True)\r\n]\r\n```\r\n\r\nTo look at the model structure the command print can be used:\r\n```python\r\nprint(NN)\r\n```\r\n\r\n\r\n### 6. Train model\r\n\r\nInputs for training must be numpy arrays. There is also option to validate model on test data while training \r\n(X_test and y_test are optional).\r\n\r\n```python\r\nNN.fit(X_train, y_train, X_test, y_test)\r\n```\r\n\r\n### 7. Use model\r\n\r\nInput for prediction must be numpy array.\r\n\r\n```python\r\ny_pred = NN.predict(X_test)\r\n```\r\n\r\n## What is supported now \u0432\u045a\u2026\r\n\r\n### Layers\r\n\r\n* Linear Layer (LinearLayer)\r\n* Image Convolutional Layer (Conv2DLayer)\r\n* Batch Normalization Layer (BatchNormLayer)\r\n* Recurrent Layer (RecurrentLayer)\r\n* RNN Layer (RNNLayer)\r\n* Flatten Layer (FlattenLayer)\r\n\r\n### Optimizers\r\n\r\n* SGD\r\n* NAG\r\n* Adagrad\r\n* Adam\r\n\r\n### Datasets and Iterators\r\n\r\n* Dataset Iterator with shuffle\r\n* Table Dataset\r\n* Image Dataset\r\n* Sequence Dataset\r\n\r\n### Regularization\r\n\r\n* L1, L2, Elastic Net\r\n* Dropout Layer (DropOutLayer)\r\n\r\n## What will be done \u0440\u045f\u201c\u045c\r\n\r\n### New Layers\r\n\r\n* Bidirectional RNN\r\n* LSTM, GRU layers\r\n* Attention layers\r\n* Seq2seq model\r\n* Transformers\r\n* Pooling layers\r\n\r\n### GPU Accelaration using cupy\r\n\r\n### Some more optimizers\r\n\r\n### Preprocessing modules\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "This is the small library for deep learning.",
    "version": "0.0.18",
    "project_urls": {
        "GitHub": "https://github.com/grand-yarl/grand_lantern",
        "Homepage": "https://github.com/grand-yarl/grand_lantern"
    },
    "split_keywords": [
        "deeplearn"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "89c25fed127d83aa14ee95f6c11a5b2548847276f8841ad38defde6b471f02a5",
                "md5": "3138e9a69bbf63543893c6536a4888ad",
                "sha256": "968be5f4de5d7260be7ea1072ef0fbb6d10d826f8ffe6cec7f481174f5b0393a"
            },
            "downloads": -1,
            "filename": "grandlantern-0.0.18-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3138e9a69bbf63543893c6536a4888ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 25253,
            "upload_time": "2025-02-19T21:36:54",
            "upload_time_iso_8601": "2025-02-19T21:36:54.274565Z",
            "url": "https://files.pythonhosted.org/packages/89/c2/5fed127d83aa14ee95f6c11a5b2548847276f8841ad38defde6b471f02a5/grandlantern-0.0.18-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9dfe16cf6c12f5e62bbb4cfc94c02f9c380252fb446411533b68d4d7364d5d93",
                "md5": "51254afc27420096870867587b2ac206",
                "sha256": "5f807e5bac136419aa40ef995db1ac638ce82f3880fc48fab9f0a3569d9f0016"
            },
            "downloads": -1,
            "filename": "grandlantern-0.0.18.tar.gz",
            "has_sig": false,
            "md5_digest": "51254afc27420096870867587b2ac206",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 13270,
            "upload_time": "2025-02-19T21:36:56",
            "upload_time_iso_8601": "2025-02-19T21:36:56.662210Z",
            "url": "https://files.pythonhosted.org/packages/9d/fe/16cf6c12f5e62bbb4cfc94c02f9c380252fb446411533b68d4d7364d5d93/grandlantern-0.0.18.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-19 21:36:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grand-yarl",
    "github_project": "grand_lantern",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    "~=",
                    "2.0.2"
                ]
            ]
        }
    ],
    "lcname": "grandlantern"
}