首页 Paddle框架 帖子详情
ResNet50_vd_ssld_pretrained.pdparams作为预训练模型时,为什么报警?
收藏
快速回复
Paddle框架 问答模型训练 1235 2
ResNet50_vd_ssld_pretrained.pdparams作为预训练模型时,为什么报警?
收藏
快速回复
Paddle框架 问答模型训练 1235 2

项目地址:https://aistudio.baidu.com/bjcpu02/user/192331/3199266/notebooks/3199266.ipynb

软件代码:

num_classes = len(train_dataset.labels)
print('num_class: ', num_classes)

# 定义PPYOLO模型
model = pdx.det.PPYOLO(num_classes=num_classes)

# 开始进行训练
model.train(
num_epochs=10, # 设置训练轮数
train_dataset=train_dataset, # 设置训练数据集
train_batch_size=8, # 设置Bs
eval_dataset=eval_dataset, # 设置评估验证数据集
learning_rate=3e-5, # 设置学习率
warmup_steps=90,
warmup_start_lr=0.0,
# 定义保村间隔轮数,即每7轮保存一次训练的模型结果
save_interval_epochs=7,
lr_decay_epochs=[42, 70], # 定义学习率衰减轮数范围
save_dir='output/PPYOLO', # 定义模型保存输出文件目录
# 定义预训练模型参数文件
use_vdl=True) # 定义使用Visual DL可视化工具

运行上述代码时,执行默认的预训练模型ResNet50_vd_ssld_pretrained.pdparams,却为什么有下面warnings:

num_class: 6
2021-12-07 16:39:09 [INFO] Loading pretrained model from output/PPYOLO/pretrain/ResNet50_vd_ssld_pretrained.pdparams
2021-12-07 16:39:10 [WARNING] backbone.res5.res5a.branch2b.conv_offset.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] backbone.res5.res5a.branch2b.conv_offset.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] backbone.res5.res5b.branch2b.conv_offset.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] backbone.res5.res5b.branch2b.conv_offset.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] backbone.res5.res5c.branch2b.conv_offset.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] backbone.res5.res5c.branch2b.conv_offset.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] neck.yolo_block.0.conv_module.conv0.conv.conv.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] neck.yolo_block.0.conv_module.conv0.conv.batch_norm.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] neck.yolo_block.0.conv_module.conv0.conv.batch_norm.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] neck.yolo_block.0.conv_module.conv0.conv.batch_norm._mean is not in pretrained model
2021-12-07 16:39:10 [WARNING] neck.yolo_block.0.conv_module.conv0.conv.batch_norm._variance is not in pretrained mode

....

2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.0.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.0.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.1.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.1.bias is not in pretrained model
2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.2.weight is not in pretrained model
2021-12-07 16:39:10 [WARNING] yolo_head.yolo_output.2.bias is not in pretrained model

 

0
收藏
回复
全部评论(2)
时间顺序
DeepGeGe
#2 回复于2021-12

这是预训练模型参数和实际模型有一些不匹配的地方,这些不匹配的参数会随机初始化,而不会使用预训练参数。

比如你根据实际任务更改了模型的输出层,你实际的输出层与预训练模型训练时候类别不一致,因此输出层参数矩阵是不一样的。在加载预训练参数时候,就没办法加载,因此会打印一个警告信息来提示你咯。

不过这种情况是正常的,如果不想看到这个警告信息,可以使用下面的代码:

import warnings
warnings.filterwarnings("ignore")
0
回复
FrankLiu89
#3 回复于2021-12

谢谢!

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户