Skip to main content

🗂 Split folders with files (e.g. images) into training, validation and test (dataset) folders.

Project description

Split Folders Build Status PyPI PyPI - Python Version

Split folders with files (e.g. images) into train, validation and test (dataset) folders.

The input folder shoud have the following format:

input/
    class1/
        img1.jpg
        img2.jpg
        ...
    class2/
        imgWhatever.jpg
        ...
    ...

In order to give you this:

output/
    train/
        class1/
            img1.jpg
            ...
        class2/
            imga.jpg
            ...
    val/
        class1/
            img2.jpg
            ...
        class2/
            imgb.jpg
            ...
    test/
        class1/
            img3.jpg
            ...
        class2/
            imgc.jpg
            ...

This should get you started to do some serious deep learning on your data. Read here why it's a good idea to split your data intro three different sets.

  • You may only split into a training and validation set.
  • The data gets split before it gets shuffled.
  • A seed lets you reproduce the splits.
  • Works on any file types.
  • (Should) work on all operating systems.

Install

pip install split-folders

Usage

You you can use split_folders as Python module or as a Command Line Interface (CLI).

Module

import split_folders

# split with a ratio. To only split into training and validation set, set a tuple, e.g. (.8, .2)
split_folders.ratio('input_folder', output="output", seed=1337, ratio=(.8, .1, .1)) # default values

# split val/test with a fixed number of items e.g. 100 for each set. To only split into training and validation set, a single number.
split_folders.fixed('input_folder', output="output", seed=1337, fixed=(100, 100)) # default values

CLI

Usage:
    split_folders folder_with_images [--output] [--ratio] [--fixed] [--seed]
Options:
    --output    path to the output folder. defaults to `output`. Get created if non-existent.
    --ratio     the ratio to split. e.g. for train/val/test `.8 .1 .1` or for train/val `.8 .2`
    --fixed     set the absolute number of items per validation/test set. The remaining items constitute the training set.
                e.g. for train/val/test `100 100` or for train/val `100`
    --seed      set seed value for shuffling the items. defaults to 1337.
Example:
    split_folders imgs --ratio .8 .1 .1

License

MIT.

Project details


Download files

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

Files for split-folders, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size split_folders-0.1.0-py3-none-any.whl (5.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size split_folders-0.1.0.tar.gz (3.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page