Run_all_compare_time.py 里如果用GPU跑报错
licc0431 opened this issue · 4 comments
licc0431 commented
电脑装的cuda,Run_all_compare_time.py 里如果用GPU跑,报错如下:
Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same
错误定位在 mtcnn_result, _ = mtcnn_detect.detect(srcimg)里,本人才学,代码能力一般,不知怎么修改,先用CPU了,等待作者和他人完善。
hpc203 commented
这个错误的原因是,输入数据没有转换到gpu设备上。在mtcnn_detect.detect()函数里对输入做设备转换,Input.to(device)
licc0431 commented
好的,谢谢大神
licc0431 commented
cv读入的numpy,先torch_from_numpy(),到Tensor,再Input.to(device)。可是这样变成gpu上tensor,后面算法又调用numpy,我不知道咋改了,本文才学,请大神指教
hpc203 commented
cv读入的numpy,先torch_from_numpy(),到Tensor,再Input.to(device)。可是这样变成gpu上tensor,后面算法又调用numpy,我不知道咋改了,本文才学,请大神指教
gpu上的tensor转换到numpy的语法是: Input.data.cpu().numpy()
cpu上的tensor转换到numpy的语法是: Input.data.numpy()