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])