As shown in Fig. REF , our proposed network (3D SepNet) is based on the backbone of 3D UNet [1]} with 12 convolutional blocks in an encoder-decoder structure. Since the inter-slice and intra-slice voxel spacings of our experimental images are around 3 mm and 1 mm respectively, small organs like optical nerves/chiasma would only cross few slices. Therefore, applying standard 3D convolutions would blur their boundaries and be harmful to accuracy. We proposed to use spatially separable convolutions that separate a standard 3D convolution with a \(3\times 3\times 3\)  kernel into an intra-slice convolution with a \(1\times 3\times 3\)  kernel and an inter-slice convolution with a \(3\times 1\times 1\)  kernel. Considering the large inter-slice spacing, we use one inter-slice convolution after each three intra-slice convolutions, as shown in Fig. REF . The spatially separable convolution is implemented in Pytorch by simply specifying the kernel size. We use Instance Normalization (IN) [2]} and Rectified Linear Units (ReLU) [3]} after each convolutional layer. A skip connection with a \(1\times 1\times 1\)  convolutional layer is used in each block for better convergence. The number of channels (\(n\) ) is doubled after each max pooling in the encoder. We concatenate feature maps from the encoding path with the corresponding feature maps in the decoding path for better performance. A final layer of \(1\times 1\times 1\)  convolution with the softmax function provides the segmentation probabilities.
