栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

《Pytorch 模型推理及多任务通用范式》

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Pytorch 模型推理及多任务通用范式》

1 课程学习

本节课主要对于大白AI课程:https://mp.weixin.qq.com/s/STbdSoI7xLeHrNyLlw9GOg

《Pytorch 模型推理及多任务通用范式》课程中的第二节课进行学习。

2 作业题目

(1)题目:

必做题:
( a) 从 torchvision 中加载 resnet18 模型结构,并载入预训练好的模型权重 'resnet18-
5c106cde.pth' (在物料包的 weights 文件夹中)。
( b) 将( 1)中加载好权重的 resnet18 模型,保存成 onnx 文件。
( c) 以 torch.rand([1,3,224,224]).type(torch.float32)作为输入,求 resnet18 的模型计算量和参数
量。
( d) 以 torch.rand([1,3,448,448]).type(torch.float32)作为输入,求 resnet18 的模型计算量和参数
量。

(2)实现结果

(a)

   (b) onnx文件大小:45648KB

(c)Model: 1.82 GFLOPs and 11.69M parameters

(d)Model: 7.27 GFLOPs and 11.69M parameters

思考题:

(1) 比较必做题中的(3)和(4)的结果,有什么规律?

         随着图片尺寸增加,模型计算量增加,不影响模型参数量.

(2) 尝试用 netron 可视化 resnet18 的 onnx 文件

 

(3) model 作为 torch.nn.Module 的子类,除了用 model.state_dict()查看网络层外,还可以用 model.named_parameters()和 model.parameters()。它们三儿有啥不同?

model.state_dict():返回的是所有参数和层名称等

model.named_parameters():可以这样用[(name, param.shape) for name, param in model.named_parameters()]。

model.parameters():可以这样用[ param.shape for param in model.parameters()]

后面两个都是返回的迭代器,然后named_parameters是参数和网络层名字都有,parameters只有参数.迭代器

(4) 加载模型权重时用的 model.load_state_dict(字典, strict=True),里面的 strict 参数什么情况下要赋值 False?

       当网络结构不是完全一致的时候,通过false可以只设置相同网络层的权重。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号