File size: 1,486 Bytes
6229e10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from os import listdir
from os.path import isfile, join
from shutil import move
import random
import sys
from tqdm import tqdm

if __name__ == "__main__":

    root = sys.argv[1]
    new_root = sys.argv[2]

    # Get all midi files
    print("Getting MIDI files")
    onlyfiles = [f for f in listdir(root)]
    n = len(onlyfiles)
    print("Num files: " + str(n))

    # Generate random test/train/valid indices

    idx = [i for i in range(n)]
    split_idx = random.shuffle(idx)

    train_len = int(0.8 * n)
    test_len = int(0.1 * n)
    valid_len = n - train_len - test_len

    train_idx = idx[:train_len]
    test_idx = idx[train_len:test_len + train_len]
    valid_idx = idx[test_len + train_len:]

    # Move files to respective folder

    o = 0

    print('Spliting Train Set')
    for i in tqdm(range(train_len)):
        move(join(root, onlyfiles[train_idx[i]]), join(new_root, "train", onlyfiles[train_idx[i]]))
        o += 1

    print('Spliting Test Set')
    for i in tqdm(range(test_len)):
        move(join(root, onlyfiles[test_idx[i]]), join(new_root, "test", onlyfiles[test_idx[i]]))
        o += 1

    print('Spliting Validation Set')
    for i in tqdm(range(valid_len)):
        move(join(root, onlyfiles[valid_idx[i]]), join(new_root, "valid", onlyfiles[valid_idx[i]]))
        o += 1

    print("Succes Test: " + str(o == n))

    print(join(new_root, "valid", onlyfiles[valid_idx[100]]))
    print(isfile(join(new_root, "valid", onlyfiles[valid_idx[100]])))