Datawhale AI 夏令营 task02 deepfake攻防 深度学习概念与代码入门

前言

task2的学习指南干货浓度好高,是一篇相当了不起的深度学习概述。

也有许多高度概述性的图片,我这里存下了一张描述了大部分类型神经网络架构的图。(->2016年)

可恶怎么去不掉水印

pytorch学习资料分享

由于之前跟一个外网youtube博主视频学习过pytorch深度学习,这些内容看着很熟悉。

在此奉上学习资料链接(基本0基础,课上代码,课后作业及课外链接阅读)

b站中译视频合集(总时长24h+,没全部翻完但够学了):

代码+项目《一天学会pytorch深度学习|Learn PyTorch for deep learning in a day. Literally.》中英字幕_哔哩哔哩_bilibili

github仓库链接:GitHub - mrdbourke/pytorch-deep-learning: Materials for the Learn PyTorch for Deep Learning: Zero to Mastery course.

项目网址-电子书:

Zero to Mastery Learn PyTorch for Deep Learning

看看baseline

模型架构

模型架构上直接调用了预训练模型resnet18,并设置输出类别为2(是否为deepfake图像)。这本质上是迁移学习,将已有模型架构拿过来只修改输出/分类层。

若要从模型架构提升,可以用resnet-50,resnet-101,resnet-152,resnet269e等加权重层数量,试试参数量力大砖飞。

也可以试着使用其他图像分类模型,比如飞书文档中提到的鼻祖Ale2xNet,以及EfficientNet

数据集准备

baseline自定义了一个FFDIDataset类,并重写了__getitem__和__len__函数,为了能够使用dataloader载入自定义数据集

在数据载入dataloader时,还使用了计算机视觉的经典数据增强技巧,resize至统一规格,随机纵向/横向偏转,归一化。

train和valid数据集都默认只载入前1000条。

train可用524429条,valid可用147363条

可以加数据量,但注意配合模型架构大小,否则训练会非常漫长

模型训练

代价函数用的经典交叉熵损失

优化器也是基础的Adam,学习率设置在了0.005(可以改)

学习率调整器用的是StepLR固定步长衰减

训练epoch设置在2

我尝试修改优化器学习率和epoch,发现在只使用几千条数据的情况下,epoch2确实够用了。相同模型架构和数据集大小下,再多的epoch也无法优化loss和valid集上的正确率

我的预设

模型resnet50

训练集200000,验证集50000

显卡P100

训练时batch_size 104(显存占用14.7/16g)

epoch 2,每个epoch耗时约20min(时间不够了,可以再加epoch。)

vaild集上正确率65.898 (第一次是62.994)

提交test集上正确率82.056

提升显著,很开心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值