Pytorch 中的预训练模型

Posted

技术标签:

【中文标题】Pytorch 中的预训练模型【英文标题】:Pre-trained model in Pytorch 【发布时间】:2019-09-11 22:43:57 【问题描述】:

我刚刚加载了预训练模型 3D resnet https://github.com/kenshohara/3D-ResNets-PyTorch.

从文件“resnext-101-kinetics.pth”上方的链接下载后,我以这种方式加载了这个模型: way i defined the model

此模型适用于大型视频数据集(不幸的是,我的电脑上没有足够的空间,而且我没有找到可以下载部分数据集的链接)。我只想知道我是否正确加载了模型并知道这个网络是否经过训练。 有一个选项可以确保模型加载良好? 我打印了 state_dict 并打印了权重.. 感谢您的帮助。

【问题讨论】:

【参考方案1】:

它已经包含将预训练权重加载到模型的脚本。请检查第 168 行 - 第 173 行的代码:

https://github.com/kenshohara/3D-ResNets-PyTorch/blob/master/model.py#L168-L173

将opts.py 文件中default 的值更改为您下载的文件的路径resnext-101-kinetics.pth

'--pretrain_path', default='path/to/resnext-101-kinetics.pth', type=str, help='Pretrained model (.pth)')

如果运行代码时没有出现错误,则说明预训练文件resnext-101-kinetics.pth已正确加载。

【讨论】:

谢谢!我的代码在第 171 行的断言中失败(断言 opt.arch == pretrain['arch'])。我检查了这个问题,我看到了这个:github.com/kenshohara/3D-ResNets-PyTorch/issues/50 但他们在 resnet-34 上说话。所以我不知道如何解决这个问题,因为我给出的路径很好(resnext-101-kinetics.pth)。非常感谢!

以上是关于Pytorch 中的预训练模型的主要内容,如果未能解决你的问题,请参考以下文章

加载Pytorch中的预训练模型及部分结构的导入

加载Pytorch中的预训练模型及部分结构的导入

有啥方法可以将 PyTorch 中可用的预训练模型下载到特定路径?

为啥新层在修改后的预训练 pytorch 模型中被忽略?

Pytorch - 跳过计算每个时期的预训练模型的特征

PyTorch 的预训练,是时候学习一下了