Skip to content
forked from amaiya/ktrain

ktrain: a lightweight wrapper for Keras to help train (and deploy) neural networks

License

Notifications You must be signed in to change notification settings

drorhilman/ktrain

 
 

Repository files navigation

ktrain

ktrain is a lightweight wrapper for the deep learning library Keras to help build, train, and deploy neural networks. With only a few lines of code, ktrain allows you to easily and quickly:

  • estimate an optimal learning rate for your model given your data using a Learning Rate Finder
  • utilize learning rate schedules such as the triangular policy, the 1cycle policy, and SGDR to effectively minimize loss and improve generalization
  • employ fast and easy-to-use pre-canned models for both text classification (e.g., NBSVM, fastText, logreg) and image classification (e.g., ResNet, Wide ResNet, Inception)
  • load and preprocess text and image data from a variety of formats
  • inspect data points that were misclassified to help improve your model
  • leverage a simple prediction API for saving and deploying both models and data-preprocessing steps to make predictions on new raw data

Tutorial Notebooks

Please see the following tutorial notebooks for a guide on how to use ktrain on your projects:

Tasks such as text classification and image classification can be accomplished easily with only a few lines of code.

Example: Classifying Images of Dogs and Cats Using ktrain

import ktrain
from ktrain import vision as vis

# load data
(train_data, val_data, preproc) = vis.images_from_folder(
                                              datadir='data/dogscats',
                                              data_aug = vis.get_data_aug(horizontal_flip=True),
                                              train_test_names=['train', 'valid'], 
                                              target_size=(224,224), color_mode='rgb')

# load model
model = vis.image_classifier('pretrained_resnet50', train_data, val_data, freeze_layers=80)

# wrap model and data in ktrain.Learner object
learner = ktrain.get_learner(model=model, train_data=train_data, val_data=val_data, 
                             workers=8, use_multiprocessing=False, batch_size=64)

# find good learning rate
learner.lr_find()             # briefly simulate training to find good learning rate
learner.lr_plot()             # visually identify best learning rate

# train using triangular policy with ModelCheckpoint and implicit ReduceLROnPlateau and EarlyStopping
learner.autofit(1e-4, checkpoint_folder='/tmp') 

Installation

pip3 install ktrain

Requirements

The following software/libraries should be installed:

This code was tested on Ubuntu 18.04 LTS using Keras 2.2.4 with a TensorFlow 1.10 backend. There are a few portions of the code that may explicitly depend on TensorFlow, but such dependencies are kept to a minimum.


Creator: Arun S. Maiya

Email: arun [at] maiya [dot] net

About

ktrain: a lightweight wrapper for Keras to help train (and deploy) neural networks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 90.9%
  • Python 9.1%