代码使用手册(自用)

这篇具有很好参考价值的文章主要介绍了代码使用手册(自用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

note:以下两个工作均为使用CNNDetection的训练基本框架下修改,具体网络在network文件下进行自己修改完成。

第一项工作(ForgeryNIR)

一、Cross-Modality Knowledge Distillation (CMKD)

1.使用方法

安装包
  • install Pytorch (pytorch.org)
  • pip install -r requirements.txt
(1) 数据准备

下载好需要的数据集,按照如下方式进行组织

ForgeryNIR
      |--train              
           |--ForgeryNIR-std
                           |--0_real
                           |--cyclegan
                           |--progan
                           |--stylegan
                           |--stylegan2      
              |--ForgeryNIR-rand
                          ...
              |--ForgeryNIR-mix
                          ...
                          
      |--test              
           |--ForgeryNIR-std
                           |--0_real
                           |--cyclegan
                           |--progan
                           |--stylegan
                           |--stylegan2      
              ...
      |--val           
           |--ForgeryNIR-std
                           |--0_real
                           |--cyclegan
                           |--progan
                           |--stylegan
                           |--stylegan2      
              ...
         
(2) 训练模型

我们使用 checkpoints/[model_name]/model_epoch_best.pth 作为我们训练的最优模型。

  1. 首先我们需要使用可见光数据集(这里用的wildDeepfake)预训练一个教师模型并保存在以下路径
    /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth
  2. 下面这段命令是在multiple epochs设置下以wildDeepfake预训练的模型作为教师模型,以ForgeryNIR-std训练,以ForgeryNIR-std验证的训练代码

python train.py
–name resnet50_wildDF_kd_forgerynir_yanshou
–dataroot ./dataset_2/
–classes faces_muti_epochs --batch_size 64 --load_teacher_model --teacher_model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth

可直接运行的命令:
python train.py --name resnet50_wildDF_kd_forgerynir_yanshou --dataroot ./dataset_2/ --classes faces_muti_epochs --batch_size 64 --load_teacher_model --teacher_model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDeepfake/model_epoch_best.pth

参数说明:
--name:模型名称
--dataroot:训练,测试集所在文件夹
--classes:训练集/测试集文件夹名称
--batch_size:批
--load_teacher_model:是否导入教师模型
--teacher_model_path:教师模型路径

(3) 测试模型

在测试集已经按照要求放置好之后,可以通过下面的代码测试:

python eval.py --vals faces_muti_epochs
–batch_size 64
–model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDF_kd_forgerynir_yanshou/model_epoch_best.pth
可直接运行的命令
python eval.py --vals faces_muti_epochs --batch_size 64 --model_path /home/gpu/data/CNNDetection-master_6/checkpoints/resnet50_wildDF_kd_forgerynir_yanshou/model_epoch_best.pth

参数说明:
--vals:测试集文件夹名称
--batch_size:批
--model_path:需要测试模型的路径


第二项工作(TCSVT)

一、Spatial-Temporal Frequency Forgery Clue for Video Forgery Detection in VIS and NIR Scenario

1.使用方法

安装包
  • install Pytorch (pytorch.org)
  • pip install -r requirements.txt
(1) 数据准备

下载好需要的数据集。
生成相应的视频数据集路径与label值(0:real,1:fake)

DF_W_train.txt
./dataset/DF_W/train/0_real/352/real/135 0
./dataset/DF_W/train/0_real/352/real/122 0
./dataset/DF_W/train/0_real/352/real/102 0
./dataset/DF_W/train/0_real/352/real/124 0
./dataset/DF_W/train/0_real/352/real/159 0
./dataset/DF_W/train/0_real/352/real/25 0
./dataset/DF_W/train/1_fake/205/fake/12 1
./dataset/DF_W/train/1_fake/205/fake/13 1
./dataset/DF_W/train/1_fake/291/fake/43 1
./dataset/DF_W/train/1_fake/291/fake/5 1
./dataset/DF_W/train/1_fake/291/fake/356 1
./dataset/DF_W/train/1_fake/291/fake/196 1
./dataset/DF_W/train/1_fake/291/fake/345 1
./dataset/DF_W/train/1_fake/291/fake/329 1
./dataset/DF_W/train/1_fake/291/fake/321 1
DF_W_val.txt
验证集同理

(2) 训练模型

我们使用 checkpoints/[model_name]/model_epoch_best.pth 作为我们训练的最优模型。
以下命令是主干网络为ResNet50,参数设置:帧数 f r a m e s = 16 frames=16 frames=16,分块 K K K 选择为 4 × 4 4 \times 4 4×4 。数据集选择为:训练集:WildDeepfake,测试集:WildDeepfake 的训练示例

python train.py --name resnet50_DF-W_frames16_k16_W
–train_txt DF_W_train.txt
–val_txt DF_W_val.txt
–batch_size 8
–num_frames 16
–k 16
–model_name resnet50
–num_classes 1
–our_weight

可直接运行的命令:
python train.py --name resnet50_DF-W_frames16_k16_W --train_txt DF_W_train.txt --val_txt DF_W_val.txt --batch_size 8 --num_frames 16 --k 16 --model_name resnet50 --num_classes 1 --our_weight

参数说明:
--name:模型名
--train_txt:训练集txt路径
--val_txt:测试集txt路径
--batch_size:批次
--num_frames:一个视频中选取的帧数量[4,8,16,32]
--k:分块的数量[4,8,64]
--model_name:模型名称[resnet50,xception]
--num_classes:类别数,这里因为为2分类,所以固定为1
--our_weight:是否使用DCT增强权重矩阵

(3) 测试模型

可以通过下面的代码测试:

python eval.py --model_path ./checkpoints/resnet50_DF-W_frames16_k16_W/model_epoch_best.pth
–val_txt DF_W_val.txt
–batch_size 16
–num_frames 16
–k 16
–model_name resnet50
–num_classes 1
–our_weight
可直接运行的命令
python eval.py --model_path ./checkpoints/resnet50_DF-W_frames16_k16_W/model_epoch_best.pth --val_txt DF_W_val.txt --batch_size 16 --num_frames 16 --k 16 --model_name resnet50 --num_classes 1 --our_weight

参数说明:
--model_path:模型所在路径
--val_txt:测试集txt文件路径
--batch_size:批
--num_frames:一个视频中选取的帧数量
--k:分块的数量
--model_name:模型名称[resnet50,xception]
--num_classes:类别数,这里因为为2分类,所以固定为1
--our_weight:是否使用DCT增强权重矩阵文章来源地址https://www.toymoban.com/news/detail-468662.html

到了这里,关于代码使用手册(自用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用git合并两个不同项目代码

    前言, 这里解决的是两个不同的项目, 因为不同项目那必然是两个不同的git仓库 都是不同的git仓库了那就更不可能是相同的分支了(即使分支名相同) 至于为什么会有这种业务情况出现, 我也不知道, 反正先学干就完了 这里图形化界面演示用的是idea自带的git插件, 因为不是git命令

    2024年02月02日
    浏览(40)
  • 写出以下代码的输出结果

    1,输出执行结果 2,闭包作用域相关题 3,闭包题,写出以下代码的输出结果 4,面向对象面试题: 写出执行结果 5,输出结果: 6,写出代码的执行结果

    2024年02月13日
    浏览(51)
  • 差异对比犀利手册:使用 Partial Diff 插件在 VSCode 中比较代码差异

    简介: 在本教程中,我们将介绍如何在 Visual Studio Code(VSCode)编辑器中安装和使用 Partial Diff 插件来进行源代码文件的差异比较。Partial Diff 插件是一个强大且简单的工具,可以帮助你更容易地查看和理解代码的变化。在本教程中,我们将带你从头开始,一步一步地进行安装

    2024年02月05日
    浏览(57)
  • 无聊小知识.04 以下代码会输出什么?

    今天同事给我看了一段代码,然后这段简单的代码,我却陷入了沉思。 这段代码,string最终是“123”还是“234”呢?按照以往认知:finally快是如论如何都要执行的,而return会等待finally执行结束后返回,这里string被修改为\\\"234\\\",那么return的值也就是\\\"234\\\"。 如果你也是这么想的

    2023年04月15日
    浏览(32)
  • 【Python】使用文件哈希算法快速比较两个文件是否相同(代码实现)

    哈希值(Hash Value),也称为哈希码、散列值或摘要,是一种将任意长度的输入数据转换为固定长度字符串(通常是一串数字和字母)的算法的结果。哈希值通常用于唯一标识数据,以便快速检索或比较数据。哈希值的特点包括: 固定长度:无论输入数据的大小如何,哈希函

    2024年01月21日
    浏览(52)
  • 用Python在25行以下代码实现人脸识别

    ** ** OpenCV是最流行的计算机视觉库。最初是用C/C++编写的,现在它提供了Python的API。 OpenCV使用机器学习算法来搜索图片中的面孔。因为脸是如此复杂,没有一个简单的测试可以告诉你它是否找到了一张脸。相反,有成千上万的小模式和特征必须匹配。这些算法将识别人脸的任

    2024年02月02日
    浏览(45)
  • 云计算-HIVE部分代码复习(自用)

    一、数据仓库的操作 1.在Hive中创建一个数据仓库,名为DB create database DB; 以上创建了一个BD库,但是这一条sql可以进一步优化,我们可以加上if not exists create database if not exists DB; 2.查看数据仓库BD的信息及路径 describe database DB; 3.删除名为DB的数据仓库 drop database if exist DB; 二、Hive数

    2024年02月04日
    浏览(47)
  • 九耶|阁瑞钛伦特:以下是一个地铁跑酷html代码

    以下是一个简单的地铁跑酷的 HTML 代码示例: 这是一个简单的地铁跑酷游戏的页面,包含一个底部的红色方块代表玩家。按下空格键时,玩家会执行跳跃动作。请注意,这只是一个简单示例,没有添加游戏的逻辑和其他元素。如果想要创建一个完整的地铁跑酷游戏,需要更复

    2024年02月14日
    浏览(122)
  • 这个代码很神秘自用(别点开,你看不明白的)

    两部分,第一部分是作目标检测,第二部分是做控制

    2024年02月13日
    浏览(46)
  • git文件管理与索引,深入理解工作原理,java面试手册升级版

    git add 命令的意义是将暂存一个文件。以Git文件分类而言,如果一个文件是未追踪的,那么 git add 会将文件的状态转化为 已追踪状态 。如果git add 作用一个目录 ,那么该目录下的 所有文件都会被递归为已追踪状态暂存起来 。接着之前的例子,继续进行讲解。 $ git status On b

    2024年04月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包