'''
Author: xudawu
Date: 2024-06-20 11:09:07
LastEditors: xudawu
LastEditTime: 2024-07-10 14:14:23
'''
import torch
import torchvision
# 实例化一个模型
out_features=10
VisionNN_model=torchvision.models.resnet34(weights=None,num_classes=out_features)
# 计算可学习参数的总数
# 初始化参数计数器
total_params = 0
trainable_params = 0
# 使用for循环遍历模型的参数
for param in VisionNN_model.parameters():
total_params += param.numel()
# 如果参数需要梯度,则计入可训练参数
if param.requires_grad:
trainable_params += param.numel()
print('Total number of parameters:',total_params)
print('Total number of trainable parameters:',trainable_params)
# 查看每个层的具体参数数量
# for name, param in VisionNN_model.named_parameters():
# if param.requires_grad:
# print(name, param.numel())
# 查看模型的第一个卷积层(conv1)的权重和偏置
conv1_weight = VisionNN_model.conv1.weight
conv1_bias = VisionNN_model.conv1.bias
# 查看具体的参数数值:
# print('Conv1 Weights:\n', conv1_weight)
# print('Conv1 Bias:\n', conv1_bias)
运行结果
'''
Total number of parameters: 21289802
Total number of trainable parameters: 21289802
'''