chore: added some diagrams
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
18571cbc5e
commit
479d7b6f39
29
diagrams/system_diagram.d2
Normal file
29
diagrams/system_diagram.d2
Normal 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
|
||||||
|
|
||||||
|
|
53
diagrams/system_diagram_complex.d2
Normal file
53
diagrams/system_diagram_complex.d2
Normal 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -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:
|
||||||
|
Loading…
Reference in New Issue
Block a user