I converted my 3D training data to float16 for memory issues, but now there is an error:
RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be the same
How can I convert the model to torch.float16
(or torch.half
) before I start training?
The full error stack looks like this:
pred, info = model.update(imgs, gt, dataset, learning_rate, training=True)
File "/home/hamid/Desktop/OpticalFlow/FlowSciVis/Flow-3D/model/RIFE.py", line 126, in update
flow, mask, merged, flow_teacher, merged_teacher, loss_distill = self.flownet(torch.cat((imgs, gt), 1), scale=[1, 1, 1])
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/parallel/distributed.py", line 511, in forward
output = self.module(*inputs[0], **kwargs[0])
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/Desktop/OpticalFlow/FlowSciVis/Flow-3D/model/IFNet.py", line 177, in forward
flow, mask = stu[i](torch.cat((img0, img1), 1), None, scale=scale[i]) # stu[0]
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/Desktop/OpticalFlow/FlowSciVis/Flow-3D/model/IFNet.py", line 94, in forward
x = self.conv0(x)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/container.py", line 117, in forward
input = module(input)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/container.py", line 117, in forward
input = module(input)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/hamid/miniconda3/envs/gpu/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 567, in forward
self.padding, self.dilation, self.groups)
RuntimeError: Input type (torch.cuda.HalfTensor) and weight type (torch.cuda.FloatTensor) should be the same