## 2 Materials and Methods
### Common Details and Training  
In order to maintain a common setup between architectures, 32 filters were used in the first convolution of every architecture. After that, depending on the specific architecture, the number of filters were doubled or halved. The mini-batch used in all architectures was 16. The optimizer chosen for training was the Adam optimizer [36] with a learning rate of \(10^{-3}\), a \(\beta_{1}\) of 0.9, a \(\beta_{2}\) of 0.999 and an \(\epsilon\) of \(10^{-8}\). Adam was chosen because it is relatively easy to configure for various problems and models. The mean absolute error (MAE) between the output of the network and the ground truth CT was calculated as loss function Moreover, the weights in the network were initialized using the method described by [37] for the ReLU activation. All networks were trained until the loss is stabilised and no validation set was used because no over-fitting was found in previous experiments. All the code used in this project was developed using the Tensorflow library. Training and testing was performed on an Nvidia GeForce RTX 2080 Ti GPU, with 11 GB of GDDR6 RAM. _2D training details_: The 2D networks were trained using axial slices of shape \(256\times 256\) voxels. Slices were randomly rotated as data augmentation technique. All the slices of all subjects in the training set were randomly shuffled during training, which in total add up to 4081 slices for the head dataset and 7700 slices for the pelvis dataset. To synthesize the final pseudo-CT for a subject, each slice was processed in axial order by the network. Then, the resulting pseudo-CT slices were stacked into a volume. _3D training details_: The 3D networks were trained using 3D patches of \(32\times 32\times 32\) voxels. To generate the training dataset, all possible patches that contain CT voxels were extracted using a stride of 8, which makes a total of 33,093 patches for the head and 70,554 patches for the pelvis dataset. For data augmentation, the patches were randomly rotated in the coronal and sagittal planes. During training, these 3D patches were randomly extracted from the MR and CT volumes. To obtain the pseudo-CT volume, all the patches were merged into a final volume. In this work, three different merging strategies were tested:  
* The first merging approach is the simplest and it consists on extracting cubes in a sliding window of stride 32 (same as the patch size). Then, its corresponding pseudo-CT 3D patch is calculated and it is fitted into its corresponding position in the output volume. * The second approach uses stride 16 (half patch size). It averages the overlapping voxels between patches when they are introduced in the output volume. * The third one also consists in using stride 16, but only the center \(16\times 16\times 16\) cube of the pseudo-CT 3D patch is assigned to the output volume. Figure 5: Residual-Net architecture. The scheme shows the CNN architecture including the residual blocks in between the encoding and the decoding steps. The network receives either the four Dixon-VIBE MR sequences of the pelvis or the T1-weighted image of the brain as input. Then, it outputs a pelvis or a head pseudo-CT, respectively. The effect of these strategies in the pseudo-CT volumes are detailed in the Section 3. _Experiment details:_ A subject level cross-validation set-up was used to train and test all architectures with the proposed data sets. Both data sets comprised a total of 19 MR-CT subjects pairs. Thus, a 7 fold configuration was chosen, with 3 subjects in the test set and the remaining 16 for training. In the case of the pelvis dataset, several subjects had follow-up acquisitions. So it was ensured that all the volumes from a subject were taken out from training if that subject was in the test set. _Metrics:_ The results of every network were calculated using the outputs generated by the cross-validation.