\chapter{Implementation}
\label{chp:impl}

This chapter describes the implementation details of the project. The focus of the project is to test the classification capabilities of a RegularNet, ResNet and DenseNet when the original image has been rotated from 0 to 360 degrees. The implementation of the different nets are implemented in a Jupyter Notebook using python 2.7. The implementation of the different nets is from a TensorFlow tutorials github repository\footnote{\url{https://github.com/awjuliani/TF-Tutorials}}.

\section{Tensorflow}
TensorFlow is used in this project to create RegularNet, ResNet and DenseNet. 
TensorFlow is an open-source software library created to ease the implementation and use of neural nets. The code used in this project is a modified version of the github repository\footnote{\url{https://github.com/tensorflow/tensorflow}}.
%https://www.draw.io/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1#G0Bw37nIXex8aXYmE1Mll1U1oxUmc
\myFigure{tensorflow.PNG}{Illustration of how TensorFlow is used in this project}{fig:tf}{0.8}

In figure \ref{fig:tf} it is seen how TensorFlow is used in this project. The first part of using TensorFlow is to create the neural net that is needed - how this is done is elaborated in the following chapters. When the neural net is created in TensorFlow the training is ready to commence. 

The Training then yields a model which can be used for classification of images. The model is tested with Cifar-10 test batch. The Output contains probabilities of the classifications - such as 10 \% probability that the image is a truck.
\input{FeatureInvariance}

\input{RegularNet_imp}
\newpage
\input{ResNet_imp}
\newpage
\input{DenseNet_imp}

\input{Training}
