Using the first option, I get the error

RuntimeError                              Traceback (most recent call last)
<ipython-input-118-e03efae61dea> in <module>
----> 1 model, history_model = train_model(model, criterion, optimizer, exp_lr_scheduler, num_epochs=10)

<ipython-input-117-f1d1a61a074d> in train_model(model, criterion, optimizer, scheduler, num_epochs)
     36                 with torch.set_grad_enabled(phase == 'train'):
     37                     #outputs = model(inputs[:, 0], inputs[:, 1], inputs[:, 2])
---> 38                     outputs = model(*inputs.split(1, dim=1))
     39                     #outputs = model(inputs)
     40                     #print(outputs.shape)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    491             result = self._slow_forward(*input, **kwargs)
    492         else:
--> 493             result = self.forward(*input, **kwargs)
    494         for hook in self._forward_hooks.values():
    495             hook_result = hook(self, input, result)

<ipython-input-11-f590b21f7c95> in forward(self, image1, image2, image3)
     11 
     12     def forward(self,image1,image2,image3):
---> 13         x1 = self.model1(image1)
     14         x2 = self.model2(image2)
     15         x3 = self.model3(image3)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    491             result = self._slow_forward(*input, **kwargs)
    492         else:
--> 493             result = self.forward(*input, **kwargs)
    494         for hook in self._forward_hooks.values():
    495             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torchvision/models/vgg.py in forward(self, x)
     40 
     41     def forward(self, x):
---> 42         x = self.features(x)
     43         x = self.avgpool(x)
     44         x = x.view(x.size(0), -1)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    491             result = self._slow_forward(*input, **kwargs)
    492         else:
--> 493             result = self.forward(*input, **kwargs)
    494         for hook in self._forward_hooks.values():
    495             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/container.py in forward(self, input)
     90     def forward(self, input):
     91         for module in self._modules.values():
---> 92             input = module(input)
     93         return input
     94 

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
    491             result = self._slow_forward(*input, **kwargs)
    492         else:
--> 493             result = self.forward(*input, **kwargs)
    494         for hook in self._forward_hooks.values():
    495             hook_result = hook(self, input, result)

/opt/conda/lib/python3.6/site-packages/torch/nn/modules/conv.py in forward(self, input)
    336                             _pair(0), self.dilation, self.groups)
    337         return F.conv2d(input, self.weight, self.bias, self.stride,
--> 338                         self.padding, self.dilation, self.groups)
    339 
    340 

RuntimeError: Given groups=1, weight of size 64 3 3 3, expected input[16, 1, 224, 224] to have 3 channels, but got 1 channels instead

This is strange, the torch tensor originally had a size of [16,3,224,224]. Is the problem in the architecture of the model ?
Using the second option I get a similar error where it says the expected tensor is 4d and [16, 224, 224] is 3d.
​