Skip to main content

pytorch❤️keras

Project description

Pytorch❤️Keras

English | 简体中文

The torchkeras library is a simple tool for training neural network in pytorch jusk in a keras style. 😋😋

1, Introduction

With torchkeras, You need not to write your training loop with many lines of code, all you need to do is just

like these two steps as below:

(i) create your network and wrap it and the loss_fn together with torchkeras.KerasModel like this: model = torchkeras.KerasModel(net,loss_fn=nn.BCEWithLogitsLoss()).

(ii) fit your model with the training data and validate data.

The main code of use torchkeras is like below.

import torch 
import torchkeras

#use torchkeras.KerasModel 
model = torchkeras.KerasModel(net,
                              loss_fn = nn.BCEWithLogitsLoss(),
                              optimizer= torch.optim.Adam(net.parameters(),lr = 0.001),
                              metrics_dict = {"acc":torchmetrics.Accuracy(task='binary')}
                             )
dfhistory=model.fit(train_data=dl_train, 
                    val_data=dl_val, 
                    epochs=20, 
                    patience=3, 
                    ckpt_path='checkpoint.pt',
                    monitor="val_acc",
                    mode="max",
                    plot=True
                   )

This project seems somehow powerful, but the source code is very simple.

Actually, only about 200 lines of Python code.

If you want to understand or modify some details of this project, feel free to read and change the source code!!!


2, Features

The main features supported by torchkeras are listed below.

Versions when these features are introduced and the libraries which they used or inspired from are given.

features supported from version used or inspired by library
✅ training progress bar 3.0.0 use tqdm,inspired by keras
✅ training metrics 3.0.0 inspired by pytorch_lightning
✅ notebook visualization in traning 3.8.0 inspired by fastai
✅ early stopping 3.0.0 inspired by keras
✅ gpu training 3.0.0 use accelerate
✅ multi-gpus training(ddp) 3.6.0 use accelerate
✅ fp16/bf16 training 3.6.0 use accelerate
✅ tensorboard callback 3.7.0 use tensorboard
✅ wandb callback 3.7.0 use wandb

3, Basic Examples

You can follow these full examples to get started with torchkeras.

example read notebook code run example in kaggle
①kerasmodel basic 🔥🔥 torchkeras.KerasModel example
Open In Kaggle

②kerasmodel wandb 🔥🔥🔥 torchkeras.KerasModel with wandb demo
Open In Kaggle

③kerasmodel tunning 🔥🔥🔥 torchkeras.KerasModel with wandb sweep demo
Open In Kaggle

④kerasmodel tensorboard torchkeras.KerasModel with tensorboard example
⑤kerasmodel ddp/tpu torchkeras.KerasModel ddp tpu examples
Open In Kaggle

4, Advanced Examples

In some using cases, because of the differences of the model input types, you need to rewrite the StepRunner of KerasModel. Here are some examples.

example model library notebook
RL
ReinforcementLearning——Q-Learning🔥🔥 - Q-learning
ReinforcementLearning——DQN - DQN
CV
ImageClassification——Resnet - Resnet
ImageSegmentation——UNet - UNet
ObjectDetection——SSD - SSD
OCR——CRNN 🔥🔥 - CRNN-CTC
ObjectDetection——FasterRCNN torchvision FasterRCNN
ImageSegmentation——DeepLabV3++ segmentation_models_pytorch Deeplabv3++
InstanceSegmentation——MaskRCNN detectron2 MaskRCNN
ObjectDetection——YOLOv8 🔥🔥 ultralytics YOLOv8
ImageClassification——SwinTransformer timm Swin
NLP
TextClassification——BERT 🔥🔥 transformers BERT
TokenClassification——BERT transformers BERT_NER
FinetuneLLM——ChatGLM2 🔥🔥🔥 transformers ChatGLM2
FinetuneLLM——ChatGLM2_LoRA 🔥🔥🔥 transformers,peft ChatGLM2_LoRA
FinetuneLLM——ChatGLM2_AdaLoRA 🔥🔥🔥 transformers,peft ChatGLM2_AdaLoRA
FinetuneLLM——ChatGLM2_QLoRA 🔥🔥🔥 transformers ChatGLM2_QLoRA_Kaggle
FinetuneLLM——BaiChuan13B_QLoRA 🔥🔥🔥 transformers BaiChuan13B_QLoRA
FinetuneLLM——BaiChuan13B_NER 🔥🔥🔥 transformers BaiChuan13B_NER

If you want to understand or modify some details of this project, feel free to read and change the source code!!!

Any other questions, you can contact the author form the wechat official account below:

算法美食屋

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

torchkeras-3.9.2.tar.gz (6.5 MB view details)

Uploaded Source

Built Distribution

torchkeras-3.9.2-py3-none-any.whl (6.5 MB view details)

Uploaded Python 3

File details

Details for the file torchkeras-3.9.2.tar.gz.

File metadata

  • Download URL: torchkeras-3.9.2.tar.gz
  • Upload date:
  • Size: 6.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.0

File hashes

Hashes for torchkeras-3.9.2.tar.gz
Algorithm Hash digest
SHA256 bc880f2794602307940ef6d78818ebcd33619376302fdb9566c22dddaa4b6049
MD5 30ac692b076ed709cf653d955fb73095
BLAKE2b-256 2892ea882e286d7b66c15bf06e11afd18e8dd4b137c4d986f3eaeb6c4e31ad0c

See more details on using hashes here.

File details

Details for the file torchkeras-3.9.2-py3-none-any.whl.

File metadata

  • Download URL: torchkeras-3.9.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.0

File hashes

Hashes for torchkeras-3.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bef2b93f6400c5c62cff6c24504ec7315be47dbadb8f20ff2f5c19994132d25e
MD5 5e7edf84cf739dd338b20532680c627b
BLAKE2b-256 51391e09718fb56252f723c88c8466aebfecffd768590600ff888b2c5f0d1c9a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page