From 79272112c81dd9f23f874ffe774dbdbc67a3aef1 Mon Sep 17 00:00:00 2001 From: Andre Henriques Date: Sun, 5 Nov 2023 13:09:59 +0000 Subject: [PATCH] Updated project synoposis --- main.bib | 7 +++++++ projectsynopsis/project-synopsis.tex | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/main.bib b/main.bib index 0a12439..ba93b19 100644 --- a/main.bib +++ b/main.bib @@ -102,3 +102,10 @@ author={ note = {[Online; accessed 1. Nov. 2023]}, url = {https://go.dev} } +@misc{node-to-go, + title = {{A journey from Node to GoLang}}, + year = {2023}, + month = nov, + note = {[Online; accessed 5. Nov. 2023]}, + url = {https://www.loginradius.com/blog/engineering/a-journey-from-node-to-golang} +} diff --git a/projectsynopsis/project-synopsis.tex b/projectsynopsis/project-synopsis.tex index b506972..5badb71 100644 --- a/projectsynopsis/project-synopsis.tex +++ b/projectsynopsis/project-synopsis.tex @@ -57,6 +57,7 @@ \section{Introduction} % This section should contain an introduction to the problem aims and objectives (0.5 page) + Currently, there are many classification tasks that are being done manually. These tasks could be done more effectively if there was tooling that would allow the easy creation of classification models, without the knowledge of data analysis and machine learning models creation. The aim of this project is to create a classification service that has 0 requires zero user knowledge about machine learning, image classification or data analysis. The system should allow the user to create a reasonable accurate model that can satisfy the users' need. The system should also allow the user to create expandable models; models where classes can be added after the model has been created. @@ -103,10 +104,13 @@ The user will interact with the platform form via a web portal. The web platform will be designed using HTML and a JavaScript library called HTMX\cite{htmx} for the reactivity that the pagers requires. The web server that will act as controller will be implemented using go\cite{go}, due to its ease of use. + Go was chosen has the programming language used in the server due to its performance, i.e. \cite{node-to-go}, and ease of implementation. As compiled language go, outperforms other server technologies such as Node.js. + Go also has easy support for C ABI, which might be needed if there is a need to interact with other tools that are implemented using C. The web server will also interact with python to create models. Then to run the models, it will use the libraries that are available to run TensorFlow\cite{tensorflow2015-whitepaper} models for that in go. \subsection{Creating Models} - The models will be created using TensorFlow. + The models will be created using TensorFlow\cite{tensorflow2015-whitepaper}. + TensorFlow was chosen because, when using frameworks like Keras\cite{chollet2015keras}, it allows the easy development of machine learning models with little code. While tools like PyTorch might provide more advanced control options for the model, like dynamic graphs, it comes at the cost of more complex python code. Since that code is generated by the go code, the more python that needs to be written, the more complex the overall program gets, which is not desirable. The original plan was to use go and TensorFlow, but the go library was lacking that ability. Therefore, I chose to use python to create the models. The go server starts a new process, running python, that creates and trains the TensorFlow model. Once the training is done, the model is saved to disk which then can be loaded by the go TensorFlow library.