neural-network - 计算神经网络中的参数个数
问题描述
我想知道如果我们更改模型的输入大小,ResNet18、Vgg16 和 DenseNet201 等模型中的参数数量会改变吗?
我确实使用以下命令测量了参数的数量
pytorch_total_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
另外,我试过这个片段,参数的数量没有因不同的输入大小而改变
import torchvision.models as models
model= models.resnet18(pretrained = False)
model.cuda()
summary(model, (1,64,64))
解决方案
不,它不会。模型的参数的目的是在输入在网络管道内传播时对其进行处理。
参数大多被训练来服务于它们的目的,这是由训练任务定义的。考虑根据输入增加参数数量?他们的价值观是什么?他们会是随机的吗?这个具有新值的新参数将如何影响模型的推断?
对模型的微调、训练有素的参数进行如此突然、随机的更改是不切实际的。也许还有一些我不知道的其他算法,它们会根据输入改变它们的参数集合。但是已经提到的架构不支持这样的功能。
推荐阅读
- javascript - 运算符比较返回错误值
- javascript - 为什么我的筛子在寻找素数方面表现不佳?
- arrays - 有没有办法从我的 Google 脚本中排除包含公式的单元格?
- php - 获取标签 [img][/img] php 中的值
- javascript - 使用 webdriver.io 拖放
- javascript - progressbar.js 在 Internet Explorer 11 上不起作用
- node.js - 找不到模块 ../models/category
- git - 无法将更改推送到管理员创建的分支
- php - Firebase PHP API - 如何避免在每个请求中创建 Factory()
- ruby - 如何在 AWS Lambda 处理程序中引发错误