model.state_dict()、model.parameters()和model.named_parameters()的区别
parameters()只包含模块的参数,即weight和bias(包括BN的)。
named_parameters()返回包含模块名和模块的参数的列表,列表的每个元素均是包含layer name和layer param的元组。layer param就是parameters()的内容。
state_dict()返回包含模块整个状态的字典,除model.parameters()外,还包括model.buffer()如running_mean、running_var等BN相关参数。保存参数时需保存state_dict()。
值得注意的是,model.state_dict()所存储的模型参数tensor的require_grad都是False,而model.named_parameters()模型参数中的require_grad属性都是True。
加载模型
model=ResNet()
model.load_state_dict(torch.load('ckpt.pth'))
Pytorch内存管理
查看tensor内存状态:tensor.storage()
查看tensor间是否共享内存:id(tensor1.storage()) == id(tensor2.storage())
查看tensor元首素相对于storage地址的偏移量:tensor.storage_offset()
查看tenso