## 3 Algorithm Overview
However, due to memory constraints, it is not possible to store all encoder feature maps. The ultimate solution is to store only the max-pooling indices. The locations of every max-pooling feature-map are memorized using two bits for every \(2\times 2\) pooling window. It is a very efficient solution to keep a large amount of feature maps. This solution offers a great deal of storage efficiency for the encoder, and we can get rid of the \(fc6\) and \(fc7\) layers. Next, the decoder up-samples or un-pools the input feature map(s) in the decoder network. It utilizes the memorized max-pooling indices from the corresponding encoder's feature map(s). This step generates sparse feature maps, which are later convolved with a trainable decoder filter bank to generate dense feature maps. The batch normalization is also applied over those maps. Finely,

Figure 1: Basic Testing CNN Model (BTCM). the high dimensional feature map(s) representation is fed to a trainable soft-max classifier that classifies every pixel independently. It outputs a \(K\) (number of classes) channel of image probabilities. ## 5 Experiments

### Implementation Details

In order to test the performance of different CNN units, we initially tested a miniature version, i.e., BTCM. It is small, easy-to-train and convenient to change for different CNN's units. It is inspired by SegNet-Basic and based on four encoder and decoder units. Each unit is composed of convolution layers, batch normalization layers, pooling layers and activation functions. Test Model 1: The initial test was performed to choose the most appropriate activation function. For this purpose, we have tested the Tanh [50], Rectified Linear Unit (ReLU), Parametric Rectifier Linear Unit (PReLU) [45], Exponential Linear Units (ELU) [49] and Maxout [51]. We tried to assess the performance of all aforementioned activation functions on the proposed network and choose one with the best performance. Test Model 2: The second test was performed to assess the best performing pooling method. We have tested the average, stochastic [52] and Max pooling methodologies. For this purpose, we trained the network with each of these pooling methods one-by-one and obtained the better performing units. Test Model 3: The next experiment was performed to train the network without Batch Normalization (BN) layers. The key idea was to reduce the number of trainable parameters and the training time for the overall network. According to [PERSON] [53], batch normalization adds a certain amount of computational complexity that results in slightly higher training time. It is also assessed that batch normalization adds relatively more overhead by increasing the batch size. Therefore, we intend to train the network with less complexity and training time. Test Model 4: Another experiment is performed to take out all pooling layers and the training network only with convolution layers. This idea is inspired by [PERSON] et al. [54]. It is proposed that the pooling layer could be replaced with a normal convolution layer with a stride larger than one (i.e., for a pooling layer with \(k=3\) and \(r=2\), it would be replaced with a convolution layer with a simpler stride rate and kernel size, where the number of output channels will be equal to the number of input channels). This experiment increases the number of trainable parameters, though the resultant network is much simplified as compared to the traditional CNN pipeline. The procedure of replacing the pooling layers from the CNN network with standard convolutional layers having a higher stride rate can be explained by the standard formulation of defining convolution and pooling operations in CNNs. For example, \(f\) signifies a feature map produced by a particular layer of a CNN.