Neural network 计算神经网络中的参数个数

Neural network 计算神经网络中的参数个数,neural-network,pytorch,Neural Network,Pytorch,我想知道,如果我们改变模型的输入大小,像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、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))

不,不会的。模型的参数用于处理在网络管道内传播的输入

这些参数主要是为了达到其目的而进行训练的,这是由训练任务定义的。考虑基于输入的参数数量的增加?他们的价值观是什么?它们是随机的吗?新参数和新值将如何影响模型的推断


对模型中经过微调和良好训练的参数进行如此突然、随机的改变是不切实际的。也许还有其他一些我不知道的算法,它们根据输入改变参数集合。但是前面提到的体系结构不支持这种功能。

不,它不支持。模型的参数用于处理在网络管道内传播的输入

这些参数主要是为了达到其目的而进行训练的,这是由训练任务定义的。考虑基于输入的参数数量的增加?他们的价值观是什么?它们是随机的吗?新参数和新值将如何影响模型的推断


对模型中经过微调和良好训练的参数进行如此突然、随机的改变是不切实际的。也许还有其他一些我不知道的算法,它们根据输入改变参数集合。但上述体系结构不支持此类功能。

可转换参数不会随输入的变化而变化。如果您使用命令
list(model.parameters())[0].shape在模型的第一层中看到权重,您可以意识到它并不取决于输入的高度和宽度,而是取决于通道的数量(例如灰色、RGB、高光谱),这在较大的模型中通常是非常不重要的。有关获取输入形状的更多信息,请参见此图。

可转换参数不会随输入的更改而更改。如果您使用命令
list(model.parameters())[0].shape在模型的第一层中看到权重,您可以意识到它并不取决于输入的高度和宽度,而是取决于通道的数量(例如灰色、RGB、高光谱),这在较大的模型中通常是非常不重要的。有关获取输入形状的更多信息,请参见以下内容