That is because in your training loop you reshape the volumnes variable here:
                volumes, labels = batch_data

                volumes = Variable(volumes.view(5,200,300,320))
                if not sets.no_cuda: 
                    volumes = volumes.cuda()

that reshape makes it into a 4 dimensional image while the conv3d need 5 dimensional images. It seems that there isn’t a rgb dimension. If the images are grayscale you should just be able to add a 1 in between the 5 and 200 if it is rgb then that is a bigger problem.