chore: added some diagrams
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Andre Henriques 2024-03-10 00:09:12 +00:00
parent 18571cbc5e
commit 479d7b6f39
3 changed files with 117 additions and 4 deletions

View File

@ -0,0 +1,29 @@
User.shape: Person
Server.shape: Cloud
Proxy.shape: Hexagon
Api: "API Server" { }
Web: "Web Server" { }
Runner: "Model Runner" {
style.multiple: true
}
Train: "Model Trainer" {
style.multiple: true
}
database: "Database" {
shape: cylinder
}
User->Proxy
Server->Proxy
Proxy->Api
Proxy->Web
Api->Database
Api->Runner
Api->Train

View File

@ -0,0 +1,53 @@
database: "Database" {
shape: cylinder
}
Model: "Model Data" {
shape: cylinder
style.multiple: true
}
Dataset: "Dataset Data" {
shape: cylinder
style.multiple: true
}
Api: "API Server" { }
Runner: "Model Runner" {
style.multiple: true
}
Train: "Model Trainer" {
style.multiple: true
}
static_server: "Web App Static Server" { }
User.shape: Person
Server.shape: Cloud
static_server->User: Send control webpage
User->Api: Manage Models, Accounts, Permissions
Server->Api: Request processing of images
Api->database
Api->Model: Manage Models
Api->Dataset: Manage Datasets
Api<->Runner: Run the model
Api<->Train: Train the model
Model->Runner: Load Models
Dataset->Runner: Load Datasets
Runner->Api: Update status of task
Train<->Model: Load and Save Models
Train->Dataset: Load Datasets
Model->Train: Load Models
Dataset->Train: Load Datasets
Train->Model: Save Models
Train->Api: Update status of task

View File

@ -59,6 +59,7 @@
\today \today
\end{center} \end{center}
\newpage
\newpage \newpage
\begin{center} \begin{center}
@ -72,6 +73,7 @@
plagiarised will be penalised. plagiarised will be penalised.
\vspace*{\fill} \vspace*{\fill}
\end{center} \end{center}
\newpage
\newpage \newpage
\begin{center} \begin{center}
@ -85,6 +87,7 @@
encouragement from the first day of the university. encouragement from the first day of the university.
\vspace*{\fill} \vspace*{\fill}
\end{center} \end{center}
\newpage
\newpage \newpage
\begin{center} \begin{center}
@ -96,6 +99,7 @@
\vspace*{\fill} \vspace*{\fill}
\end{center} \end{center}
\newpage \newpage
\newpage
\tableofcontents \tableofcontents
\newpage \newpage
@ -197,7 +201,8 @@
% EfficientNet % EfficientNet
EfficientNet \cite{efficient-net} is a deep convolution neural network that was able to achieve $84.3\%$ top-1 accuracy while ``$8.4x$ smaller and $6.1x$ faster on inference than the best existing ConvNet''. EfficientNets \footnote{the family of models that use the thecniques that described in \cite{efficient-net}} are models that instead of the of just increasing the depth or the width of the model, we increase all the parameters at the same time by a constant value. By not scaling only depth, EfficientNets can acquire more information about the images, specially the image size is considered. EfficientNet \cite{efficient-net} is a deep convolution neural network that was able to achieve $84.3\%$ top-1 accuracy while ``$8.4x$ smaller and $6.1x$ faster on inference than the best existing ConvNet''. EfficientNets \footnote{the family of models that use the thecniques that described in \cite{efficient-net}} are models that instead of the of just increasing the depth or the width of the model, we increase all the parameters at the same time by a constant value. By not scaling only depth, EfficientNets can acquire more information about the images, specially the image size is considered.
To test their results, the EfficientNet team created a baseline model which as a building block used the mobile inverted bottleneck MBConv \cite{inverted-bottleneck-mobilenet}. The baseline model was then scaled using the compound method, which resulted in better top-1 and top-5 accuracy. To test their results, the EfficientNet team created a baseline model which as a building block used the mobile inverted bottleneck MBConv \cite{inverted-bottleneck-mobilenet}. The baseline model was then scaled using the compound method, which resulted in better top-1 and top-5 accuracy.
While EfficientNets are smaller than their non-EfficientNet counterparts, they are more computational intensive, a ResNet-50 scaled using the EfficientNet compound scaling method is $3\%$ more computational intensive than a ResNet-50 scaled using only depth while improving the top-1 accuracy by $0.7\%$, and as the model will be trained and run multiple times decreasing the computational cost might be a better overall target for sustainability then being able to offer higher accuracies. While EfficientNets are smaller than their non-EfficientNet counterparts, they are more computational intensive, a ResNet-50 scaled using the EfficientNet compound scaling method is $3\%$ more computational intensive than a ResNet-50 scaled using only depth while improving the top-1 accuracy by $0.7\%$.
And as the model will be trained and run multiple times decreasing the computational cost might be a better overall target for sustainability then being able to offer higher accuracies.
Even though scaling using the EfficientNet compound method might not yield the best results using some EfficientNets what were optimized by the team to would be optimal, for example, EfficientNet-B1 is both small and efficient while still obtaining $79.1\%$ top-1 accuracy in ImageNet, and realistically the datasets that this system will process will be smaller and more scope specific than ImageNet. Even though scaling using the EfficientNet compound method might not yield the best results using some EfficientNets what were optimized by the team to would be optimal, for example, EfficientNet-B1 is both small and efficient while still obtaining $79.1\%$ top-1 accuracy in ImageNet, and realistically the datasets that this system will process will be smaller and more scope specific than ImageNet.
% \subsection{Efficiency of transfer learning} % \subsection{Efficiency of transfer learning}
@ -268,12 +273,38 @@
This section will discuss the design of the system. This section will discuss the design of the system.
The section will discuss the inter application interface, control platform, and server, dataset, and model management. The section will discuss the inter application interface, control platform, and server, dataset, and model management.
\subsection{Structure of the Service}
\begin{figure}
\begin{center}
\includegraphics{system_diagram}
\end{center}
\caption{Simplified diagram of the service}\label{fig:simplified_service_diagram}
\end{figure}
The service is designed to be a 4 tier structure:
\begin{itemize}
\item{Presentaion Layer}
\item{Api Layer}
\item{Work Layer}
\item{Database Layer}
\end{itemize}
This structure was selected because it allows separation of concerns to happen based on the resourses required by that layer.
The presentaion layer requires interactivity of the user, therefore it needs to be accessible from the outside, and be simple to use.
The presentaion layer consisnts of a webpage that interacts with the Api layer, to manage both the resourses allocated to users and administrators of the system.
More specific details of the implementaion can be found in \ref{web-app-design}.
The Api layer, controls the system, it's the interface that both the webpage and customer servers use to interact with the system.
\subsection{Inter Application Interface} \subsection{Inter Application Interface}
As a software as a service, one of the main requirements is to be able to communicate with other services. As a software as a service, one of the main requirements is to be able to communicate with other services.
The current main way that servers communicate over the internet is using https and a rest JSON API\cite{json-api-usage-stats} The current main way that servers communicate over the internet is using https and a rest JSON API\cite{json-api-usage-stats}.
\subsection{Web application} \subsection{Web application} \label{web-app-design}
Why use a web application to control the system? Why use a web application to control the system?
@ -313,7 +344,7 @@
\pagebreak
\section{Design Choices} \section{Design Choices}
\subsection{Structure of the Service} \subsection{Structure of the Service}
The system has to manage: The system has to manage: