Open LonelyPlanetIoT opened 1 year ago
Yes. I only use 20 frames per video for training.
Could I ask more details? What device do you use for this method? Sometimes the process is killed after Epoch 0.3 or 0.4 . I only have a single 3070 GPU.I kow it is small for this experiment so I set batchsize to 4 . Fogive my poor English, may I ask more questions if I met in Chinese?
如果没有任何报错就kill的话,我猜测是超过机器内存了。因为训练中每个iter会存储一部分patch embedding用来做分布估计。你batchsize越小,iterations会倍数增加,于是到0.5epoch之前储存的feat_tensorlist_fake就超过内存了。如果你的计算资源只能支持非常小的batchsize的话,所以我建议你修改feat_tensorlist_fake部分的代码,间隔几轮iteration再保存一部分样本。我未尝试过在一张卡运行且如此小的batchsize,希望这个回答对你有帮助。
I trained the model using four TITAN XP. And the batchsize is 96.
谢谢十分有帮助,我调小了模型大小调大了batchsize 代码顺利运行。可以问一下你们在测试中使用的DeepfakeDetection的画质是raw 、c23 还是?
DeepfakeDetection用的是raw
您好,结合原码算是彻底理解您的文章内容了。我在运行train.py中加载模型的时,打印“No pretrained weights exist or were found for this model. Using random initialization.”,并没有自动下载并加载预训练参数,请问是什么原因,谢谢!
您好,结合原码算是彻底理解您的文章内容了。我在运行train.py中加载模型的时,打印“No pretrained weights exist or were found for this model. Using random initialization.”,并没有自动下载并加载预训练参数,请问是什么原因,谢谢!
我运行的时候是可以自动从url下载预训练模型的。我觉得你可以从network/vit_base_feat_middle_gal_v2.py中的default_cfgs['vit_base_patch16_224']中的url直接下载模型放在本地,然后修改load_pretrained函数中state_dict的加载方式,应该可以快速解决加载预训练模型的问题。
您好,结合原码算是彻底理解您的文章内容了。我在运行train.py中加载模型的时,打印“No pretrained weights exist or were found for this model. Using random initialization.”,并没有自动下载并加载预训练参数,请问是什么原因,谢谢!
我运行的时候是可以自动从url下载预训练模型的。我觉得你可以从network/vit_base_feat_middle_gal_v2.py中的default_cfgs['vit_base_patch16_224']中的url直接下载模型放在本地,然后修改load_pretrained函数中state_dict的加载方式,应该可以快速解决加载预训练模型的问题。
谢谢解答
您好,结合原码算是彻底理解您的文章内容了。我在运行train.py中加载模型的时,打印“No pretrained weights exist or were found for this model. Using random initialization.”,并没有自动下载并加载预训练参数,请问是什么原因,谢谢!
我运行的时候是可以自动从url下载预训练模型的。我觉得你可以从network/vit_base_feat_middle_gal_v2.py中的default_cfgs['vit_base_patch16_224']中的url直接下载模型放在本地,然后修改load_pretrained函数中state_dict的加载方式,应该可以快速解决加载预训练模型的问题。
找到问题了。network/vit_base_feat_middle_gal_v2.py,line 344 ,应当是model.pretrained_cfg,不是model.default_cfg
您好,结合原码算是彻底理解您的文章内容了。我在运行train.py中加载模型的时,打印“No pretrained weights exist or were found for this model. Using random initialization.”,并没有自动下载并加载预训练参数,请问是什么原因,谢谢!
我运行的时候是可以自动从url下载预训练模型的。我觉得你可以从network/vit_base_feat_middle_gal_v2.py中的default_cfgs['vit_base_patch16_224']中的url直接下载模型放在本地,然后修改load_pretrained函数中state_dict的加载方式,应该可以快速解决加载预训练模型的问题。
找到问题了。network/vit_base_feat_middle_gal_v2.py,line 344 ,应当是model.pretrained_cfg,不是model.default_cfg 谢谢,这条回复对我也有帮助,但我关于这篇论文的训练还有些疑惑,train.py 中 lines 68 niter 的help 写的是 numbers of epoch to train for first stage. 我执行完代码,发现也就运行了niter 数量的epoch,是只需要训练这几个epoch还是我的运行有问题还有第二个阶段需要执行? 以及一些关于数据预处理的小困惑,我发现这个方向 每篇文章提取人脸的方式不尽相同,例如dlib,MTCNN 截取人脸后设置的margin 也不一样,这些会对最后的结果有很大的影响吗?
很抱歉继续打扰您,原谅我在该方向上浅薄的积累。我可以知道更多关于cross-dataset Experiment 的操作细节吗? (1) 在验证模型在不同数据集上的效果时,是否还是采用train.json 中划分的FF++ 的视频进行训练。或是将所有FF++视频都作为训练集。 Cross Manipulation Experiment中也有同样的困惑,例如是使用DF 中全部1000条视频进行测试,其他伪造方法的全部视频训练,还是依然按照json 文件的划分进行实验? (2)使用 celeb-DF进行测试时,是仅仅测试celeb DF 提供的 List_of_testing_videos.txt 中的视频,还是对Celeb real Celeb-synthesis Youtube-real 中全部视频进行测试?
很抱歉继续打扰您,原谅我在该方向上浅薄的积累。我可以知道更多关于cross-dataset Experiment 的操作细节吗? (1) 在验证模型在不同数据集上的效果时,是否还是采用train.json 中划分的FF++ 的视频进行训练。或是将所有FF++视频都作为训练集。 Cross Manipulation Experiment中也有同样的困惑,例如是使用DF 中全部1000条视频进行测试,其他伪造方法的全部视频训练,还是依然按照json 文件的划分进行实验? (2)使用 celeb-DF进行测试时,是仅仅测试celeb DF 提供的 List_of_testing_videos.txt 中的视频,还是对Celeb real Celeb-synthesis Youtube-real 中全部视频进行测试?
嗨,你好!我现在也是在尝试复现代码,有几个问题想请教一下您: 1、数据集的具体结构是怎么组织的呀,尤其在看到faceforensics_dataset_stand.py的第43行,我没太看懂我应该怎么组织FF++的子目录结构 2、./dataset的trian.json test.json valid.json里面只是一部分数据,其作用是什么呢?是只在train.json的360个上面训练嘛,比如faceforensics_dataset_stand.py第30行imgsfolderPath = get_datalist_stand(datapath) ,其中imgsfolderpath有1440个元素,比如前四个:['071 0','054 0','071_054 1','054_071 1']前两个0代表用071和054的真脸,后两个1代表假,但071_054和054_071代表啥意思呢? 敬请您指导一下,非常感谢呢!
I find that the default framenum in train.py is set to train :20 val :10 test: 110 .It means per video only use 20 frames in training ?