

Neural Network model.
import tensorflow as tf
import numpy as np
import keras
data = keras.datasets.fashion_mnist
(training_images, training_labels), (test_images, test_labels) = data.load_data()
# Normalizing images
training_images = training_images / 255.0
test_images = test_images / 255.0
# Defining the model
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28,28)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax)
])
# Compiling the model
model.compile(
optimizer='adam', # An improved version of stochastic gradient descent.
loss='sparse_categorical_crossentropy',
metrics=['accuracy']
)
# Fitting
model.fit(training_images, training_labels, epochs=5)
model.evaluate(test_images, test_labels)
import pandas as pd
classifications = model.predict(test_images)
results = []
for i in range(len(test_labels)):
if classifications[i].argmax() == test_labels[i]:
results.append(1)
else:
results.append(0)
results_pd = pd.DataFrame({'Results': results})
results_pd.hist(bins=2)
# Callback class
class myCallback(tf.keras.callbacks.Callback):
def on_epoch_end(self,epoch, logs={}):
if(logs.get('accuracy') > 0.95):
print("\nReached 95% accuracy. Cancelling training!")
self.model.stop_training = True
callbacks=myCallback()
model.fit(
training_images,
training_labels,
epochs=50,
callbacks=[callbacks]
)
model.evaluate(test_images, test_labels)