This is a simple neural network application that will suggest a LIGHT or DARK font for a given background color.
The training/predicting user interface was built with TornadoFX.
Currently there are three implementations:
- Simple RGB formula
- My feed-forward brute force implementation (no backpropagation)
- ojAlgo! Neural Network
- DeepLearning4J
For this simple toy example ojAlgo seems to perform the best, and is light and the simplest to implement. DL4J is definitely more heavyweight (with many dependencies) but is a more robust framework for larger, data-intensive deep learning problems in production. DL4J also has a nice Kotlin MNIST example.
Note also there is now a button to pre-train 1345 categorized colors.
Tariq Rashid's book Build Your Own Neural Network is a tremendous resource, as well as 3Blue1Brown's Video. Grokking Deep Learning is probably the most thorough and useful resource when you are ready to deep-dive.