Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

torchkeras

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

torchkeras

pytorch❤️keras

  • 4.0.2
  • PyPI
  • Socket score

Maintainers
1

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

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',
                    monitor="val_acc",
                    mode="max",
                    plot=True
                   )

Besides,You can use torchkeras.VLog to get the dynamic training visualization any where as you like ~

import time
import math,random
from torchkeras import VLog

epochs = 10
batchs = 30

#0, init vlog
vlog = VLog(epochs, monitor_metric='val_loss', monitor_mode='min') 

#1, log_start 
vlog.log_start() 

for epoch in range(epochs):
    
    #train
    for step in range(batchs):
        
        #2, log_step (for training step)
        vlog.log_step({'train_loss':100-2.5*epoch+math.sin(2*step/batchs)}) 
        time.sleep(0.05)
        
    #eval    
    for step in range(20):
        
        #3, log_step (for eval step)
        vlog.log_step({'val_loss':100-2*epoch+math.sin(2*step/batchs)},training=False)
        time.sleep(0.05)
        
    #4, log_epoch
    vlog.log_epoch({'val_loss':100 - 2*epoch+2*random.random()-1,
                    'train_loss':100-2.5*epoch+2*random.random()-1})  

# 5, log_end
vlog.log_end()

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.

featuressupported from versionused or inspired by library
✅ training progress bar3.0.0use tqdm,inspired by keras
✅ training metrics3.0.0inspired by pytorch_lightning
✅ notebook visualization in traning3.8.0inspired by fastai
✅ early stopping3.0.0inspired by keras
✅ gpu training3.0.0use accelerate
✅ multi-gpus training(ddp)3.6.0use accelerate
✅ fp16/bf16 training3.6.0use accelerate
✅ tensorboard callback3.7.0use tensorboard
✅ wandb callback3.7.0use wandb
✅ VLog3.9.5use matplotlib

3, Basic Examples

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

exampleread notebook coderun 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 tensorboardtorchkeras.KerasModel with tensorboard example
⑤kerasmodel ddp/tputorchkeras.KerasModel ddp tpu examples
Open In Kaggle

⑥ VLog for lightgbm/ultralytics/transformers🔥🔥🔥VLog example

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.

examplemodel librarynotebook
RL
ReinforcementLearning——Q-Learning🔥🔥-Q-learning
ReinforcementLearning——DQN-DQN
Tabular
BinaryClassification——LightGBM-LightGBM
MultiClassification——FTTransformer🔥🔥🔥🔥🔥-FTTransformer
BinaryClassification——FM-FM
BinaryClassification——DeepFM-DeepFM
BinaryClassification——DeepCross-DeepCross
CV
ImageClassification——Resnet-Resnet
ImageSegmentation——UNet-UNet
ObjectDetection——SSD-SSD
OCR——CRNN 🔥🔥-CRNN-CTC
ImageClassification——SwinTransformertimmSwin
ObjectDetection——FasterRCNNtorchvisionFasterRCNN
ImageSegmentation——DeepLabV3++segmentation_models_pytorchDeeplabv3++
InstanceSegmentation——MaskRCNNdetectron2MaskRCNN
ObjectDetection——YOLOv8 🔥🔥🔥ultralyticsYOLOv8
InstanceSegmentation——YOLOv8 🔥🔥🔥ultralyticsYOLOv8
NLP
Seq2Seq——Transformer🔥🔥-Transformer
TextGeneration——Llama🔥-Llama
TextClassification——BERTtransformersBERT
TokenClassification——BERTtransformersBERT_NER
FinetuneLLM——ChatGLM2_LoRA 🔥🔥🔥transformers,peftChatGLM2_LoRA
FinetuneLLM——ChatGLM2_AdaLoRA 🔥transformers,peftChatGLM2_AdaLoRA
FinetuneLLM——ChatGLM2_QLoRA🔥transformersChatGLM2_QLoRA_Kaggle
FinetuneLLM——BaiChuan13B_QLoRA🔥transformersBaiChuan13B_QLoRA
FinetuneLLM——BaiChuan13B_NER 🔥🔥🔥transformersBaiChuan13B_NER
FinetuneLLM——BaiChuan13B_MultiRounds 🔥transformersBaiChuan13B_MultiRounds
FinetuneLLM——Qwen7B_MultiRounds 🔥🔥🔥transformersQwen7B_MultiRounds
FinetuneLLM——BaiChuan2_13B 🔥transformersBaiChuan2_13B

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:

算法美食屋

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc