1.安装文档:
https://github.com/MRzzm/DINet?tab=readme-ov-file
2.使用python3.12安装后执行会报错
https://github.com/MRzzm/DINet/issues/115
3.执行时报错提示没有cuda:
修改1:
ref_img_tensor = torch.from_numpy(ref_video_frame).permute(2, 0, 1).unsqueeze(0).float().cuda()
改为:
ref_img_tensor = torch.from_numpy(ref_video_frame).permute(2, 0, 1).unsqueeze(0).float().cpu()
修改2:
model = DINet(opt.source_channel, opt.ref_channel, opt.audio_channel).cuda()
改为:
model = DINet(opt.source_channel, opt.ref_channel, opt.audio_channel).cpu()
修改3:
crop_frame_tensor = torch.from_numpy(crop_frame_data).float().cuda().permute(2, 0, 1).unsqueeze(0)
改为:
crop_frame_tensor = torch.from_numpy(crop_frame_data).float().cpu().permute(2, 0, 1).unsqueeze(0)
修改4:
deepspeech_tensor = torch.from_numpy(ds_feature_padding[clip_end_index - 5:clip_end_index, :]).permute(1, 0).unsqueeze(0).float().cuda()
改为:
deepspeech_tensor = torch.from_numpy(ds_feature_padding[clip_end_index - 5:clip_end_index, :]).permute(1, 0).unsqueeze(0).float().cpu()
4.Mac读取GPU保存下来的模型报错
修改1:
state_dict = torch.load(opt.pretrained_clip_DINet_path)['state_dict']['net_g']
改为:
state_dict = torch.load(opt.pretrained_clip_DINet_path,map_location=torch.device('cpu'))['state_dict']['net_g']
5.Mac预处理数据时,裁剪面部图像报错
修改1:
astype(np.int)
改为:
astype(int)
6.Mac训练时,提示不兼容Cuda
修改1:
#注释掉此行
#torch.cuda.manual_seed(opt.seed)
修改2:
.cuda()
替换为
cpu()
6.Mac训练时,下载Vgg模型报ssl错误
修改1:
#脚本首行添加
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
7.Mac上clip训练时,cuda报错
参考6
8.Mac上clip训练时,提示不兼容cuda
参考4
修改1:
##self.model.load_state_dict(torch.load(pretrain_path)['state_dict']['net'])
self.model.load_state_dict(torch.load(pretrain_path,map_location=torch.device('cpu'))['state_dict']['net'])
9.Mac上clip训练时,提示不兼容cuda
参考4
修改1:
##self.model.load_state_dict(torch.load(pretrain_path)['state_dict']['net'])
self.model.load_state_dict(torch.load(pretrain_path,map_location=torch.device('cpu'))['state_dict']['net'])
最后建议:
1.硬件资源有限的情况下可以使用训练好的模型在mac上进行口型驱动
2.不建议在Mac上自己训练模型,低效且效果差