Platform Selection
Programming Languages
- Python [Final Selection]
- Pros
- Large variety of existing machine learning packages
- All members are well-versed in this language
- Existing code from client is implemented in Python
- Cons
- Not compiled so training and testing will be slower
- Relatively higher memory usage
- Pros
Java- Pros
- Compiled language so will run faster
- Easier to port to a web app interface
- Cons
- Less variety of existing ML packages
- Pros
Specialty Packages
- TensorFlow / Keras [Final Selection]
- Pros
- Falls in line with the current state of the codebase according to the client
- Easily Accessible documentation
- Cons
- Less experience within team on TensorFlow for model development
- Pros
- PyTorch
- Pros
- Team members have experience in developing models with this package
- Cons
- Would require team to restart progress for the the client
- Pros
Other Tools
- Anaconda Environment [Final Selection]
- Pros
- Client requested that we use this for running the code
- Pros
- Jupyter Notebook [Final Selection]
- Pros
- Running notebook files in anaconda virtual environment
- Also requested by client to see end-to-end program run
- Running notebook files in anaconda virtual environment
- Pros
Architecture Diagram