vid2vid 代码调试+训练+测试(debug+train+test)(三)在自己的数据集上训练

 话不多说,上代码。

# train on 256_g1

$ python train.py --name <任务名>_256_g1 --input_nc 3 --loadSize 256 --n_downsample_G 2 --num_D 1 --max_frames_per_gpu 4 --n_frames_total 15 --dataroot datasets/<我的数据集>/ --save_epoch_freq 10 --gpu_ids=2

# train on 512_g1

$ python train.py --name <任务名>_512_g1 --input_nc 3 --loadSize 512 --n_scales_spatial 2  --n_downsample_G 2 --max_frames_per_gpu 1 --n_frames_total 4 --niter_step 2 --niter_fix_global 8 --niter_decay 5 --load_pretrain checkpoints/<任务名>_256_g1 --dataroot datasets/<我的数据集>/ --save_epoch_freq 10 --gpu_ids 2

# train on 1024_g1

$ python train.py --name <任务名>_1024_g1 --input_nc 3 --loadSize 896 --n_scales_spatial 3 --n_frames_D 2 --n_downsample_G 2 --num_D 3 --max_frames_per_gpu 1 --n_frames_total 4 --niter_step 2 --niter_fix_global 8 --niter_decay 5 --load_pretrain checkpoints/<任务名>_512_g1 --lr 0.0001 --dataroot datasets/<我的数据集>/ --save_epoch_freq 8 --gpu_ids 2

# test

# test on 512_g1
$ python test.py --name <任务名>_512_g1 --input_nc 3 --loadSize 512 --n_scales_spatial 2 --n_downsample_G 2  --gpu_ids=3 --dataroot datasets/<我的数据集>/ --no_first_img

# test on 1024_g1
$ python test.py --name <任务名>_1024_g1 --input_nc 3 --loadSize 1024 --n_scales_spatial 3 --n_downsample_G 2  --gpu_ids 2 --dataroot datasets/<我的数据集>/ --no_first_img

备注:

1)我们是在单个GPU上做的训练;

2)命令需要按顺序执行;

3)数据集的准备参照street的格式;

4)训练1024的时候,如果卡是11G的,第二次更新训练参数的时候可能会内存溢出,不过只要设置“save_epoch_freq”小一些使它至少可以保留一次即可(不过训练结果不能保证);

5)<xxx>内表示这一部分需要自定义,完了后不需要带尖括号。

""" Dataset 结构图 """
"""
datasets/my_dataset_name
    ├── train_A
    │   ├── seq_000000 
    │   ├── seq_000001
    │   └── ...
    │   
    ├── train_B
    │   ├── seq_000000 
    │   ├── seq_000001
    │   └── ...
    │
    ├── test_A
    │   ├── seq_000000 
    │   ├── seq_000001
    │   └── ...
    │   
    └── test_B
        ├── seq_000000 
        ├── seq_000001
        └── ...
"""

 至此,对vid2vid的研究告一段落,下阶段的研究可以与其作对比实验了!

祝君安!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 这段代码的作用是判断给定的文件路径(source)是否以图片格式(IMG_FORMATS)或视频格式(VID_FORMATS)的一种结尾,返回结果是一个布尔值(True/False)。 其中,IMG_FORMATS和VID_FORMATS应该是事先定义好的常量或变量,包含了支持的图片格式和视频格式的文件扩展名。".suffix"表示取出文件路径的后缀名(即文件扩展名),"[1:]"表示从第二个字符开始取出后缀名,因为第一个字符是"."。 最终,该行代码的结果将存储在is_file变量中,表示该文件路径是否是图片或视频格式的文件。 ### 回答2: 这段代码用于判断给定的文件路径是否是图片或视频文件。实际上,先将给定的文件路径转换为Path对象,然后使用.suffix获取文件的后缀名部分。然后,使用[1:]将后缀名的第一个字符(通常为点号)去除掉,得到真正的后缀名。最后,判断这个后缀名是否在IMG_FORMATS或VID_FORMATS中。 根据这段代码的语法,IMG_FORMATS和VID_FORMATS应该是事先定义好的包含图片格式和视频格式后缀名的列表或元组。这样,如果文件的后缀名可以在IMG_FORMATS或VID_FORMATS中找到,is_file的值为True;否则,is_file的值为False。 这段代码的目的是通过后缀名来判断文件是图片还是视频。如果我们有一个名为source的文件路径,我们可以使用这段代码来判断这个文件是一个图片文件还是视频文件。代码的逻辑是先将source转换为Path对象,然后获取其后缀名,并去除第一个字符(通常是点号),最后判断该后缀名是否存在于IMG_FORMATS或VID_FORMATS中。 需要注意的是,IMG_FORMATS和VID_FORMATS的具体定义没有在问题中给出,可能是在其他的代码段中定义的。因此,代码的正确性还要依赖于IMG_FORMATS和VID_FORMATS列表或元组的正确定义。 ### 回答3: 这段代码的意思是,将`source`路径转换为`Path`对象,并获取其后缀名,然后判断该后缀名是否在指定的图片格式和视频格式中。 `IMG_FORMATS`和`VID_FORMATS`是一个存储了图片格式和视频格式的元组。这个代码会先使用`Path(source)`将路径转换为`Path`对象,然后通过`.suffix`方法获取文件的后缀名,再使用`[1:]`切片操作去掉后缀名中的点号,最后判断剩余的后缀名是否在指定的图片格式和视频格式中。 这段代码有两个问题,首先是没有给出`IMG_FORMATS`和`VID_FORMATS`的具体定义,因此无法确定其中包含哪些格式。其次,这段代码只会判断文件的后缀名是否在指定的格式中,但并不能保证它就是图片或视频文件。 如果要进一步判断文件的实际类型,需要使用更多的方法,比如可以使用第方库如`Pillow`来打开图片文件,并捕获异常来确保其有效性。对于视频文件,可能需要使用专门的库进行解析和判断。根据具体需求和具体文件类型的定义,需要进一步完善代码来实现更精确的判断。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值