classifier.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import tensorflow as tf
  2. def main():
  3. pass
  4. '''
  5. mnist = tf.keras.datasets.mnist
  6. (x_train, y_train), (x_test, y_test) = mnist.load_data()
  7. x_train = tf.keras.utils.normalize(x_train, axis=1)
  8. x_test = tf.keras.utils.normalize(x_test, axis=1)
  9. model = tf.keras.models.Sequential()
  10. model.add(tf.keras.layers.Flatten())
  11. model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
  12. model.add(tf.keras.layers.Dense(128, activation=tf.nn.relu))
  13. model.add(tf.keras.layers.Dense(10, activation=tf.nn.softmax))
  14. model.compile(optimizer='SGD',
  15. loss='sparse_categorical_crossentropy',
  16. metrics=['accuracy'])
  17. model.fit(x_train, y_train, epochs=3)
  18. '''
  19. # data and results arrays (training and testing) should be paired. Classifications is number of ways to classify data.
  20. def train(classifications: int, data: list, results: list, testdata: list, testresults: list):
  21. numberOfNeurons = (len(data[0]) + classifications)/2
  22. model = tf.keras.models.Sequential()
  23. model.add(tf.keras.layers.Flatten())
  24. model.add(tf.keras.layers.Dense(numberOfNeurons), activation=tf.nn.relu)
  25. model.add(tf.keras.layers.Dense(numberOfNeurons), activation=tf.nn.relu)
  26. model.add(tf.keras.layers.Dense(classifications), tf.nn.softmax)
  27. model.compile(optimizer='SGD',
  28. loss='sparse_categorical_crossentropy',
  29. metrics=['accuraccy'])
  30. model.fit(data, results, epochs=5)
  31. loss, accuracy = model.evaluate(testdata, testresults)
  32. print(loss)
  33. print(accuracy)
  34. if __name__ == '__main__':
  35. main()