This repository was archived by the owner on Nov 13, 2017. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparameterTesting.py
More file actions
100 lines (77 loc) · 3.11 KB
/
parameterTesting.py
File metadata and controls
100 lines (77 loc) · 3.11 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import csv
import os
import random
import subprocess
import numpy as np
from multiprocessing import Pool
from multiprocessing.dummy import Pool as ThreadPool
n_readouts = []
n_components = []
damping = []
weight_scaling = []
discard_steps = []
alpha = []
lengthPenalty = []
random_seed = []
iterArray = np.arange(0, 1001, 1)
for i in iterArray:
n_components.append(random.randrange(100, 150, 1))
damping.append(random.uniform(0.2, 0.5))
weight_scaling.append(random.uniform(0.03, 0.07))
n_readouts.append(random.randrange(6, 12, 1))
discard_steps.append(random.randrange(10, 15, 1))
alpha.append(random.uniform(0.1, 0.3))
lengthPenalty.append(random.uniform(0.1, 0.15))
random_seed.append(random.randrange(30000, 50000, 5))
iterArray = np.arange(0, 1000, 1)
testdata=[]
test = open('test-file.csv', 'rb')
treader = csv.reader(test, delimiter=',')
for testd in treader:
testdata.append(testd[0])
test.close()
pool = ThreadPool(8)
parameters=open('parameters.txt', 'rb')
reader = csv.reader(parameters, delimiter=',')
result = open('result.txt', 'wb')
mywriter= csv.writer(result)
#for row in reader:
# print row
def runDeepBlueNote(k):
print k
# print k + ' : '+ str(n_components[k]) + ' ' + str(damping[k]) + ' ' + str(weight_scaling[k]) + ' ' + str(n_readouts[k]) + ' ' + str(discard_steps[k]) + ' ' + str(alpha[k]) + ' ' + str(lengthPenalty[k]) + ' ' + str(random_seed[k])
command = 'Python DeepBlueNote.py parameters/train/train-'+str(k)+'.csv parameters/test/test-'+str(k)+'.csv parameters/out/out-'+str(k)+'.csv ' + str(n_components[k]) + ' ' + \
str(damping[k]) + ' ' + str(weight_scaling[k]) + ' ' + str(n_readouts[k]) + ' ' + str(discard_steps[k]) + ' ' + str(alpha[k]) + ' ' + str(lengthPenalty[k]) + ' ' + str(random_seed[k])
print command
with open(os.devnull, 'wb') as devnull:
subprocess.check_call(command.split(' '), stdout=devnull, stderr=subprocess.STDOUT)
#os.system(command)
out= 'parameters/out/out-'+str(k)+'.csv'
pred = open(out, 'rb')
preader = csv.reader(pred, delimiter=',')
j = 0
accuracy = 0
instrument = 0
style = 0
year = 0
tempo=0
for prediction in preader:
p=prediction[0].split(';')
t=testdata[j].split(';')
# print t[0] + p[0]
if t[1] != p[0]:
accuracy += 1
if t[3] != p[1]:
instrument += 1
if t[4] != p[2]:
style += 1
year += abs(int(t[5])-int(p[3]))
j += 1
pred.close()
#mywriter.writerow([accuracy, n_components[k], damping[k], weight_scaling[k], n_readouts[k], discard_steps[k], alpha[k], lengthPenalty[k]])
print "accuraccy: "+ str([k, instrument, style, accuracy, n_components[k], damping[k], weight_scaling[k], n_readouts[k], discard_steps[k], alpha[k], lengthPenalty[k], random_seed[k]])
#return str([instrument, style, accuracy])
return str([k, instrument, style, accuracy, n_components[k], damping[k], weight_scaling[k], n_readouts[k], discard_steps[k], alpha[k], lengthPenalty[k], random_seed[k]])
results = pool.map(runDeepBlueNote, iterArray)
result.close()
print results