# Get specific test images
test_real_A_data = test_data_A.__getitem__(9)[0].unsqueeze(
    0)  # Convert to 4d tensor (BxNxHxW)
test_real_B_data = test_data_B.__getitem__(7)[0].unsqueeze(0)

# Model Initialisation
G_A = Generator(params.input_channels, params.ngf, params.output_channels,
                params.num_resnet)
G_A.double()

G_B = Generator(params.input_channels, params.ngf, params.output_channels,
                params.num_resnet)
G_B.double()

D_A = Discriminator(params.input_channels, params.ndf, params.output_channels)
D_A.double()

D_B = Discriminator(params.input_channels, params.ndf, params.output_channels)
D_B.double()

# Weight Initialisation
G_A.normal_weight_init(mean=0.0, std=0.02)
G_B.normal_weight_init(mean=0.0, std=0.02)
D_A.normal_weight_init(mean=0.0, std=0.02)
D_B.normal_weight_init(mean=0.0, std=0.02)

G_A = gpuAvailable(G_A, params.cuda)
G_B = gpuAvailable(G_B, params.cuda)
D_A = gpuAvailable(D_A, params.cuda)
D_B = gpuAvailable(D_B, params.cuda)