pytoch提取神经网络的权重等参数的方法

要将参数输入到硬件,因为不是c语言写的,就只能硬来…吐血
我希望我以后不要再费时间在此了!!
方法一:提取各层的参数
output_1=model.fc1.bias.data
output_1=model.fc1.weight.data

方法二:提取模型中所有weight的参数(bias一样)
for name, parameters in model.state_dict().items():
if “weight” in name:
print(name,’:’,parameters.detach().numpy())

方法三:提取所有的parameters
params = list(model.parameters())
np.set_printoptions(suppress=True)
print(params)
或者
for param_tensor in model.state_dict():
np.set_printoptions(suppress=True)
print(param_tensor, “\n”, model.state_dict()[param_tensor].numpy())

方法四:模型参数的总数
model_parameters = filter(lambda p: p == 0, model.parameters())
params = sum([np.prod(p.size()) for p in model_parameters])
print(params)

方法5:可以看到整个模型的输出shape和对应的参数量
from torchsummary import summary
summary(net, (1, 28, 28))
还有from ptflops import get_model_complexity_info

你可能感兴趣的:(pytoch提取神经网络的权重等参数的方法)