This repository was archived by the owner on Apr 28, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 213
Expand file tree
/
Copy pathpredict_time.py
More file actions
57 lines (50 loc) · 1.72 KB
/
predict_time.py
File metadata and controls
57 lines (50 loc) · 1.72 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
import time
import torch
import tensor_comprehensions as tc
#import sklearn
#from sklearn.linear_model import LinearRegression
#from sklearn.ensemble import GradientBoostingRegressor
import numpy as np
#from sklearn.model_selection import train_test_split
#from tensor_comprehensions.mapping_options import Options
from multiprocessing import Pool
from itertools import repeat
import utils
#from tqdm import tqdm
exptuner_config = utils.ExpTunerConfig()
exptuner_config.set_convolution_tc()
NB_HYPERPARAMS = utils.NB_HYPERPARAMS
def createY(x):
y = utils.evalTime(x, exptuner_config)
return y
def getRandom():
opt_v = np.zeros(NB_HYPERPARAMS).astype(int)
for i in range(opt_v.shape[0]):
opt_v[i] = np.random.randint(exptuner_config.cat_sz[i])
return opt_v
def makeDataset():
from tqdm import tqdm
sz = 500
datasetX, datasetY = [], []
for _ in tqdm(range(sz)):
opt = getRandom()
yi = createY(opt)
datasetX.append(opt)
datasetY.append(yi)
#with Pool(sz) as p:
# datasetY = p.starmap(createY, datasetX)
return np.array(datasetX), np.array(datasetY)
def learn():
#from sklearn.linear_model import LinearRegression
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split
datasetX, datasetY = makeDataset()
print(min(datasetY))
Xtrain, Xtest, Ytrain, Ytest = train_test_split(datasetX, datasetY, test_size=0.2, random_state = 42)
model1 = GradientBoostingRegressor(n_estimators=1000)
model1.fit(Xtrain, Ytrain)
pred0 = model1.predict(Xtrain)
pred1 = model1.predict(Xtest)
print(np.corrcoef(pred0, Ytrain)[0, 1]**2)
print(np.corrcoef(pred1, Ytest)[0,1]**2)
#learn()