/
train.py
61 lines (46 loc) · 1.91 KB
/
train.py
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
import numpy
from random import shuffle
from keras.layers import Dropout, Dense
from keras.models import Sequential
from keras.optimizers import Adam
import csv
from matplotlib.mlab import frange
raw_data = []
with open('data/yemen_mvam_normalized.csv', 'rb') as csvfile:
csvReader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in csvReader:
raw_data.append(row[45:50])
raw_data = raw_data[1:]
shuffle(raw_data)
trainingData = numpy.asarray([x[0:3] for x in raw_data[0:18000]])
trainingLabels = numpy.asarray([x[3] for x in raw_data[0:18000]])
testData = numpy.asarray([x[0:3] for x in raw_data[18000:]])
testLabels = numpy.asarray([x[3] for x in raw_data[18000:]])
clf = Sequential()
clf.add(Dense(input_dim=3, output_dim=1600, activation='tanh'))
clf.add(Dropout(0.6))
clf.add(Dense(input_dim=1600, output_dim=1200, activation='tanh'))
clf.add(Dropout(0.6))
clf.add(Dense(input_dim=1200, output_dim=800, activation='tanh'))
clf.add(Dropout(0.6))
clf.add(Dense(input_dim=800, output_dim=1, activation='tanh'))
clf.compile(optimizer=Adam(), loss='mean_squared_error')
#clf.save_weights('models/version1')
#clf.fit(trainingData, trainingLabels, batch_size=64, nb_epoch=4, validation_data=(testData, testLabels), verbose=1)
clf.load_weights('models/version1')
x = 0.01457496 # 10 kilometer
y = 0.02627294 # 10 kilometer
time = 0.05 # 1/5 month
for timeC in frange(-1, 1, time):
coords = []
for xC in frange(-1, 1, x):
for yC in frange(-1, 1, y):
coords.append([xC, yC, timeC]);
predictions = clf.predict(numpy.asarray(coords), batch_size=1000)
with open('output/' + str(timeC) + '.csv', 'w') as csvfile:
datawriter = csv.writer(csvfile, delimiter=',',
quotechar='"', quoting=csv.QUOTE_MINIMAL)
i = 0;
for prediction in predictions:
datawriter.writerow([coords[i][0], coords[i][1], prediction[0]])
i += 1