D2: Design Documents

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
  • Java
    • Pros
      • Compiled language so will run faster
      • Easier to port to a web app interface
    • Cons
      • Less variety of existing ML packages

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
  • PyTorch
    • Pros
      • Team members have experience in developing models with this package
    • Cons
      • Would require team to restart progress for the the client

Other Tools

  • Anaconda Environment [Final Selection]
    • Pros
      • Client requested that we use this for running the code
  • Jupyter Notebook [Final Selection]
    • Pros
      • Running notebook files in anaconda virtual environment
        • Also requested by client to see end-to-end program run

Architecture Diagram