classifier.py 1.7 KB

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