Deep learning framework built with numpy (cupy)
This version supports cuda 11.x ver
$ git clone git clone https://github.com/augustinLib/neuralflow.git
or
# cpu-only
$ pip install neuralflow-cpu
# gpu (cuda 11.x)
$ pip install neuralflow
you can build model like this,
from neuralflow.model import Model, DenseLayer, ConvLayer, MaxPoolingLayer
from neuralflow.function_class import ReLU
model = Model(
DenseLayer(784, 50),
ReLU(),
DenseLayer(50, 10)
)
conv_model = Model(
ConvLayer(input_channel = 1, output_channel = 30, kernel_size = 5, stride = 1, padding=0),
ReLU(),
MaxPoolingLayer(kernel_size=2, stride=2),
DenseLayer(4320, 100),
ReLU(),
DenseLayer(100, 10)
)
model_ln = Model(
EmbeddingLayer(vocab_size, wordvec_size),
Dropout(dropout),
LSTMLayer(wordvec_size, hidden_size),
Dropout(dropout),
LSTMLayer(hidden_size, hidden_size),
Dropout(dropout),
DenseLayer(hidden_size, vocab_size)
)
# mixed precision
model_ln.mixed_precision_on()
# weight tying
model_ln.weight_tying()
and the training proceeds as follows.
from neuralflow.function_class import ReLU, CrossEntropyLoss
from neuralflow.optimizer import Adam
critic = CrossEntropyLoss()
optim = Adam()
pred = model(x)
loss = critic(pred, y)
model.backward(critic)
optim.update(model)
you can also train model with trainer
from neuralflow.trainer import ClassificationTrainer
from neuralflow.data import DataLoader
dataloader = DataLoader(train_data)
trainer = ClassificationTrainer(model,
critic,
optim,
epochs,
init_lr = 0.001)
trainer.train(dataloader)
when using gpu, set it as follows.
# using gpu
from neuralflow import config
config.GPU = True
# using cpu
from neuralflow import config
config.GPU = False
- neuralflow
- __init__.py
- data.py
- function.py
- function_class.py
- model.py
- optimizer.py
- trainer.py
- utils.py
- nlp
- __init__.py
- utils.py
- model.py
- cv
- __init__.py
- model.py
- epoch_notice
- send_message.py
- token_generator.py
- dataset
- test
- README.md
- .gitignore