import tensorflow as tf import pandas as pd import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import BatchNormalization from tensorflow.keras.layers import Conv2D from tensorflow.keras.layers import MaxPooling2D from tensorflow.keras.layers import Activation from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import Dense model = Sequential([ Conv2D(5, kernel_size=3, padding='same', input_shape=(5, 5, 2)), MaxPooling2D(pool_size=(2, 2), strides=None), Activation("relu"), Flatten(), Dense(10, activation="relu"), Dense(8, activation="relu"), Dense(1, activation="sigmoid") # Dense(40, activation="relu", input_shape=(52,)), # Dense(10, activation="relu"), # Dense(5, activation="relu"), # Dense(1, activation="sigmoid") ]) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model.summary() csv = pd.read_csv("data/test.csv") training_data = csv.copy().head(5000) training_outcome = training_data.pop('Outcome') training_input = training_data.copy() training_input = training_input.drop(columns=training_data.keys()[0:2]) train = np.array(training_input) train = train.reshape((training_input.shape[0], 5, 5, 2)) model.fit(train, training_outcome, epochs=20) test_data = csv.copy().head(10000) test_data = test_data.drop(columns=test_data.keys()[0:2]) test_outcome = test_data.pop('Outcome') test_input = np.array(test_data) test_input.reshape((test_data.shape[0], 5, 5, 2)) test_loss, test_acc = model.evaluate(test_input, test_outcome, verbose=2) print('\nTest accuracy:', test_acc)