GitXplorerGitXplorer
x

keras-toolkit

public
12 stars
1 forks
0 issues

Commits

List of commits on branch master.
Verified
0f5b43678526b0069be9839766ca64758190ed9f

Add gpu limit util function, new readme section, improve docstring (#5)

committed 3 years ago
Verified
69815662185aca0a31ba5c420313301ff582393e

Refactor kt.image.build_dataset, update readme (#4)

committed 3 years ago
Unverified
fa497d41ce2c3fd4075a935b0c7ec9fbf9846dcd

Remove incorrect demo

committed 3 years ago
Verified
78ee32d9f60153d7a72df8b0bb261948e0f47838

Refactor Docs (#3)

committed 3 years ago
Verified
f420624f6aa73753eab5ede99c9efb4e818c1a7b

Fix url

committed 3 years ago
Unverified
846f4f683b20eabf598d6f87f45b24ae56320c31

Slightly update references

committed 4 years ago

README

The README file for this repository.

Keras Toolkit

A collection of functions to help you easily train and run Tensorflow Keras

Get the complete API reference here.

Quickstart

Install the library:

pip install keras-toolkit

You can now use it:

import keras_toolkit as kt

# kt reduces the number of lines from ~100 to ~3
strategy = kt.accelerator.auto_select(verbose=True)
decoder = kt.image.build_decoder(with_labels=True, target_size=(300, 300))
dtrain = kt.image.build_dataset(paths, labels, bsize=BATCH_SIZE, decode_fn=decoder)

with strategy.scope():
    model = tf.keras.Sequential([...])
    model.compile(...)

model.fit(...)

Usage

To automatically select an accelerator (e.g. TPU, GPU, CPU) and run on that accelerator:

import keras_toolkit as kt
strategy = kt.accelerator.auto_select(verbose=True)

with strategy.scope():
    # your keras code here
    model = tf.keras.Sequential([...])

To restrict the GPU memory usage of TensorFlow (e.g. to 2GB):

import keras_toolkit as kt

kt.accelerator.limit_gpu_memory(2*1024)

To build an image dataset from a list of paths and a list of labels (associated with the paths):

import keras_toolkit as kt

dtrain = kt.image.build_dataset(paths, labels)
# => <PrefetchDataset shapes: ((None, 256, 256, 3), (None,)), types: (tf.float32, tf.int32)>

# Fit your keras model on that new tf.data.Dataset:
model.fit(dtrain, ...)

If you only have a list of image paths, it will create tf.data.Dataset without labels:

dtrain = kt.image.build_dataset(paths)
# => <PrefetchDataset shapes: (None, 256, 256, 3), types: tf.float32>

You can also customize the dataset (e.g. batch size, custom image loader, custom augmentation, etc.):

# This is just the default
img_decoder = kt.image.build_decoder(target_size=(512, 512))
augmenter = kt.image.build_augmenter()

dset = build_dataset(
    paths, labels, 
    decode_fn=img_decoder,
    bsize=64,
    cache="./cache_dir/",
    augment=augmenter,
    shuffle=False,
    random_state=42
)

Acknowledgement