aboutsummaryrefslogtreecommitdiff
path: root/src/train5.py
blob: dd02df794045a42eddb7eb915ee23de2295d1b5c (plain)
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
import pandas as pd
import numpy as np

import tensorflow.keras.losses

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dropout
from tensorflow.keras.layers import Input
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import Convolution2D
from tensorflow.keras.layers import Flatten

# 30 10(11) 5
# 27 17 4

size = 6
magic = int(size*3/2.0)
shape = (-1, size, size, 8)

model = Sequential([
    Input(shape[1:]),
    Convolution2D(magic, kernel_size=(3, 3), strides=(1, 1),
                  padding='valid',
                  activation="relu", use_bias=True),
    Flatten(),
    Dropout(0.2),
    Dense(magic, activation="relu", use_bias=True),
    Dense(2, activation="softmax")
])

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

model.summary()

tr_fn = "validation-"+str(size)+".csv"
training_csv = pd.read_csv(tr_fn).head(80000)
training_data = training_csv
training_input = np.array(training_data.iloc[:, :-2]).reshape(shape)
training_outcome = training_data.iloc[:, -2:]

val_fn = "validation-"+str(size)+".csv"
val_data = pd.read_csv(val_fn).tail(20000)
val_input = np.array(val_data.iloc[:, :-2]).reshape(shape)
val_outcome = val_data.iloc[:, -2:]

results = []
reps = 10
for i in range(0, reps):
    print("Iteration ", i)
    history = model.fit(training_input, training_outcome, epochs=1,
                        validation_data=(val_input, val_outcome),
                        verbose=False)
    loss, accuracy = model.evaluate(val_input, val_outcome, verbose=False)
    results += [(loss, accuracy)]

print("\n\n")
for i in range(0, reps):
    print("Iteration ", i, ": ", results[i])