def test_split_fixed_sample_unbalanced(): input_dir = os.path.join(os.path.dirname(__file__), "imgs") output_dir = os.path.join(os.path.dirname(__file__), "output") shutil.rmtree(output_dir, ignore_errors=True) with pytest.raises(ValueError): split_folders.fixed(input_dir, output_dir, fixed=(9, 1), oversample=True)
def split_images(input_directory, output_directory,type,value): if(type == "ratio"): # Split with a ratio. # To only split into training and validation set, set a tuple to `ratio`, i.e, `(.8, .2)`. split_folders.ratio(input_directory, output_directory, seed=1337, ratio=value) # default values elif(type == "fixed"): # Split val/test with a fixed number of items e.g. 100 for each set. # To only split into training and validation set, use a single number to `fixed`, i.e., `10`. split_folders.fixed(input_directory, output_directory, seed=1337, fixed=value, oversample=False) # default values else: print("Invalid input")
def test_split_fixed_sample(): input_dir = os.path.join(os.path.dirname(__file__), "imgs") output_dir = os.path.join(os.path.dirname(__file__), "output") shutil.rmtree(output_dir, ignore_errors=True) split_folders.fixed(input_dir, output_dir, fixed=(2, 2), oversample=True) # ensure the number of pics is the same a = len(list(pathlib.Path(input_dir).glob("**/*.jpg"))) b = len(list(pathlib.Path(output_dir).glob("**/*.jpg"))) assert a != b
def test_split_fixed(): input_dir = os.path.join(os.path.dirname(__file__), 'imgs') output_dir = os.path.join(os.path.dirname(__file__), 'output') shutil.rmtree(output_dir, ignore_errors=True) split_folders.fixed(input_dir, output_dir, fixed=(2, 2)) # ensure the number of pics is the same a = len(list(pathlib.Path(input_dir).glob('**/*.jpg'))) b = len(list(pathlib.Path(output_dir).glob('**/*.jpg'))) assert a == b
import split_folders # Split with a ratio. # To only split into training and validation set, set a tuple to `ratio`, i.e, `(.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, use a single number to `fixed`, i.e., `10`. split_folders.fixed('input_folder', output="output", seed=1337, fixed=(100, 100), oversample=False) # default values
import split_folders # Split with a ratio. # To only split into training and validation set, set a tuple to `ratio`, i.e, `(.8, .2)`. split_folders.ratio('./img_root/', output="output", seed=1337, ratio=(.8, .2)) # 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, use a single number to `fixed`, i.e., `10`. split_folders.fixed('./img_root/', output="output", seed=1337, fixed=(10), oversample=False) # default values
# for splitting the dataset into tain,test and validation dataset. import split_folders # Split with a ratio. # To only split into training and validation set, set a tuple to `ratio`, i.e, `(.8, .2)`. # split_folders.ratio('/home/satvik/Downloads/major/satu/satu', 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, use a single number to `fixed`, i.e., `10`. split_folders.fixed('/home/satvik/Downloads/major/satu', output="/home/satvik/Downloads/major/dataset", seed=1337, fixed=(50, 50), oversample=False) # default values
import numpy as np import pandas as pd import json from pathlib import Path import os from fastai.vision import * import split_folders path = Path(r'E:\paintings-dataset\wikiart\train') output_path = Path(r'E:\paintings-dataset') split_folders.fixed(path, output=output_path, fixed=(100, 20), oversample=False) # default values # for dir_class in split_folders.list_dirs(path): # print(len(split_folders.list_files(dir_class))) ImageList