@ptrblck  Thank you! That works absolutely as expected now . I had an added query to my previous question. In my network model as printout out in the below code snippet:
      for seq_index in range(options.numFrames):
                # images are supposed to be normalized to [0, 1] in dataloader
                inputs['image', seq_index] = inputs['image', seq_index].cuda()
                inputs['extrinsic', seq_index].cuda()
                if seq_index == 0:
                    # use color augmented image for training (not to use for loss computing)
                    features = models["encoder"](inputs['image_aug', seq_index].cuda())
                    print ("Type of feature ", len(features))
                    multi_scale_depth_pred = models["depth"](features)

Line features = models["encoder"](inputs['image_aug', seq_index].cuda())  returns a list of size 5 where each of the element of the list itself is a 4-dimensional tensor.(Batch Size x Channel x H xW) Now this features is fed to another model which is model["depth"] Now at this point I had two question:


Since I again wish to split this feature in between my multiple GPUs, Do I need to perform any specific operation on features since features.cuda() is an invalid command. (since features is a list)


The second part is: features which I am receiving from models["encoder"] would come back from multiple GPUs , how do I make sure the features coming from a given gpu goes to same gpu in step multi_scale_depth_pred = models["depth"](features)


Thank you,
Nitin