This repository was archived by the owner on May 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata_balancer.py
More file actions
65 lines (56 loc) · 1.87 KB
/
Copy pathdata_balancer.py
File metadata and controls
65 lines (56 loc) · 1.87 KB
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
55
56
57
58
59
60
61
62
63
64
65
from numpy import min, load, save
from pandas import DataFrame
from collections import Counter
from random import shuffle
from tqdm import tqdm
LEVELS = ["EASY", "NORMAL", "HARD", "EXPERT"]
FILENAME_INPUT = "./data/capture/training_data_{}.npy"
FILENAME_OUTPUT = "./data/balanced/training_data_balanced.npy"
def main():
final_data = []
for level in tqdm(LEVELS):
train_data = load(FILENAME_INPUT.format(level), encoding="bytes")
df = DataFrame(train_data)
print(Counter(df[1].apply(str)))
lefts = []
rights = []
ups = []
downs = []
spaces = []
shuffle(train_data)
for data in tqdm(train_data):
img = data[0]
choice = data[1]
if choice == [1, 0, 0, 0, 0]:
ups.append([img, choice])
elif choice == [0, 1, 0, 0, 0]:
lefts.append([img, choice])
elif choice == [0, 0, 1, 0, 0]:
downs.append([img, choice])
elif choice == [0, 0, 0, 1, 0]:
rights.append([img, choice])
elif choice == [0, 0, 0, 0, 1]:
spaces.append([img, choice])
else:
print('NO MATCHES!')
shuffle(ups)
shuffle(downs)
shuffle(lefts)
shuffle(rights)
shuffle(spaces)
min_length = min([len(ups), len(downs), len(lefts), len(rights), len(spaces)])
ups = ups[:min_length]
spaces = spaces[:min_length]
downs = downs[:min_length]
lefts = lefts[:min_length]
rights = rights[:min_length]
final_data.extend(ups)
final_data.extend(downs)
final_data.extend(lefts)
final_data.extend(rights)
final_data.extend(spaces)
shuffle(final_data)
save(FILENAME_OUTPUT, final_data)
print(len(final_data))
if __name__ == '__main__':
main()