Skip to main content
# ktrain

*ktrain* is a lightweight wrapper for the deep learning library [Keras](https://keras.io/) 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
- employ learning rate schedules such as the [triangular policy](https://arxiv.org/abs/1506.01186), the [1cycle policy](https://arxiv.org/abs/1803.09820), and [SGDR](https://arxiv.org/abs/1608.03983) to effectively minimize loss and improve generalization
- 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)
- methods to help you easily load and preprocess text and image data from a variety of formats
- easily inspect data points that were misclassified to help improve your model
- a simple prediction API for saving and deploying models and data-preprocessing steps to easily 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:
* Tutorial 1: [Introduction](https://github.com/amaiya/ktrain/blob/master/tutorial-01-introduction.ipynb)
* Tutorial 2: [Tuning Learning Rates](https://github.com/amaiya/ktrain/blob/master/tutorial-02-tuning-learning-rates.ipynb)
* Tutorial 3: [Image Classification](https://github.com/amaiya/ktrain/blob/master/tutorial-03-image-classification.ipynb)
* Tutorial 4: [Text Classification](https://github.com/amaiya/ktrain/blob/master/tutorial-04-text-classification.ipynb)
* Tutorial A1: [Additional tricks](https://github.com/amaiya/ktrain/blob/master/tutorial-A1-additional-tricks.ipynb), which covers topics such as examining misclassifications, inspecting intermediate output of Keras models for debugging, and built-in callbacks.

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

#### Example: Classifying Images of [Dogs and Cats](https://www.kaggle.com/c/dogs-vs-cats) Using *ktrain*
```
import ktrain
from ktrain import vision as vis
(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')
model = vis.image_classifier('pretrained_resnet50', train_data, val_data, freeze_layers=80)
learner = ktrain.get_learner(model=model, train_data=train_data, val_data=val_data,
workers=8, use_multiprocessing=False, batch_size=64)
learner.lr_find() # briefly simulate training to find good learning rate
learner.lr_plot() # visually identify best learning rate
# implicitly employs triangular learning rate policy with ReduceLROnPlateau, ModelCheckpoint, and EarlyStopping
learner.autofit(1e-4, checkpoint_folder='/tmp')
```


### Requirements

The following software/libraries should be installed:

- [Python 3.6+](https://www.python.org/) (tested on 3.6.7)
- [Keras](https://keras.io/) (tested on 2.2.4)
- [TensorFlow](https://www.tensorflow.org/) (tested on 1.10.1)
- [scikit-learn](https://scikit-learn.org/stable/) (tested on 0.20.0)
- [matplotlib](https://matplotlib.org/) (tested on 3.0.0)
- [pandas](https://pandas.pydata.org/) (tested on 0.24.2)
<!--- [PIL](https://pillow.readthedocs.io/en/stable/) (tested on 5.1.0) -->
<!-- - [scipy](https://www.scipy.org/) (tested on 1.2.1) - insalled by scikit-learn-->
<!-- - [numpy](http://www.numpy.org/) (tested on 1.16.1) - installed by scikit-learn -->

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](http://arun.maiya.net)**

**Email:** arun [at] maiya [dot] net


Metadata

Release files for ktrain 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ktrain 0.1.2
File Size Uploaded
ktrain-0.1.2.tar.gz 37.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ktrain 0.1.2
File Interpreter ABI Platform
ktrain-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 84.2 kB

Release files / ktrain-0.1.2.tar.gz

Download URL ktrain-0.1.2.tar.gz
Size 37.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cee4f5b7dab535c5c62e9c3ed59698cf907eae000fc00379f83df86f32194ea8
BLAKE2b-256 checksum
How to use checksums
4c9028cf5d0f2aad2cebd63e74d292be22b5a16ff9f915671bf3a38b8998eabf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

Release files / ktrain-0.1.2-py3-none-any.whl

Download URL ktrain-0.1.2-py3-none-any.whl
Size 47.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6fde9586964e63c7e31a93396a4b3a948d0ead46691e818ed5a64afff03751a
BLAKE2b-256 checksum
How to use checksums
1c36aa1f76377b87ca55d847f8287ee0c38f7060ffa6637533372562e783ba9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

Release history Release notifications | RSS feed

0.41.4

1 release file

0.41.3

1 release file

0.41.2

1 release file

0.41.1

1 release file

0.41.0

1 release file

0.40.0

1 release file

0.39.0

1 release file

0.38.0

1 release file

0.37.6

1 release file

0.37.5

1 release file

0.37.4

1 release file

0.37.3

1 release file

0.37.2

1 release file

0.37.1

1 release file

0.37.0

1 release file

0.36.1

1 release file

0.36.0

1 release file

0.35.1

1 release file

0.35.0

1 release file

0.34.0

1 release file

0.33.4

1 release file

0.33.3

1 release file

0.33.2

1 release file

0.33.1

1 release file

0.33.0

1 release file

0.32.3

1 release file

0.32.2

1 release file

0.32.1

1 release file

0.32.0

1 release file

0.31.9

1 release file

0.31.8

1 release file

0.31.7

1 release file

0.31.6

1 release file

0.31.5

1 release file

0.31.4

1 release file

0.31.3

1 release file

0.31.2

2 release files

0.31.1

1 release file

0.31.0

1 release file

0.30.0

1 release file

0.29.3

1 release file

0.29.2

1 release file

0.29.1

1 release file

0.29.0

1 release file

0.28.3

1 release file

0.28.2

1 release file

0.28.1

1 release file

0.28.0

1 release file

0.27.3

1 release file

0.27.2

1 release file

0.27.1

1 release file

0.27.0

1 release file

0.26.5

1 release file

0.26.4

1 release file

0.26.3

1 release file

0.26.2

1 release file

0.26.1

1 release file

0.26.0

1 release file

0.25.4

1 release file

0.25.3

1 release file

0.25.2

1 release file

0.25.1

1 release file

0.25.0

1 release file

0.24.2

1 release file

0.24.1

1 release file

0.24.0

1 release file

0.23.2

1 release file

0.23.1

1 release file

0.23.0

1 release file

0.22.4

1 release file

0.22.3

1 release file

0.22.2

1 release file

0.22.1

1 release file

0.22.0

1 release file

0.21.4

1 release file

0.21.3

1 release file

0.21.2

1 release file

0.21.1

1 release file

0.21.0

1 release file

0.20.2

1 release file

0.20.1

1 release file

0.20.0

1 release file

0.19.9

1 release file

0.19.8

1 release file

0.19.7

1 release file

0.19.6

1 release file

0.19.5

1 release file

0.19.4

1 release file

0.19.3

1 release file

0.19.2

1 release file

0.19.1

1 release file

0.19.0

1 release file

0.18.5

1 release file

0.18.4

1 release file

0.18.3

1 release file

0.18.2

1 release file

0.18.1

1 release file

0.18.0

1 release file

0.17.5

1 release file

0.17.4

1 release file

0.17.3

1 release file

0.17.2

1 release file

0.17.1

1 release file

0.17.0

1 release file

0.16.3

1 release file

0.16.2

1 release file

0.16.1

1 release file

0.16.0

1 release file

0.15.4

1 release file

0.15.3

1 release file

0.15.2

1 release file

0.15.1

1 release file

0.15.0

1 release file

0.14.7

1 release file

0.14.6

1 release file

0.14.5

1 release file

0.14.4

1 release file

0.14.3

1 release file

0.14.2

1 release file

0.14.1

1 release file

0.14.0

1 release file

0.13.2

1 release file

0.13.1

1 release file

0.13.0

1 release file

0.12.3

1 release file

0.12.2

1 release file

0.12.1

1 release file

0.12.0

1 release file

0.11.3

1 release file

0.11.2

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.1

1 release file

0.10.0

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.3

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.10

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

This release

0.1.2 This release

2 release files

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page