pytorch 更改预训练模型网络结构的方法
2019-08-19 14:56
2803 查看
一个继承nn.module的model它包含一个叫做children()的函数,这个函数可以用来提取出model每一层的网络结构,在此基础上进行修改即可,修改方法如下(去除后两层):
resnet_layer = nn.Sequential(*list(model.children())[:-2])
那么,接下来就可以构建我们的网络了:
class Net(nn.Module): def __init__(self , model): super(Net, self).__init__() #取掉model的后两层 self.resnet_layer = nn.Sequential(*list(model.children())[:-2]) self.transion_layer = nn.ConvTranspose2d(2048, 2048, kernel_size=14, stride=3) self.pool_layer = nn.MaxPool2d(32) self.Linear_layer = nn.Linear(2048, 8) def forward(self, x): x = self.resnet_layer(x) x = self.transion_layer(x) x = self.pool_layer(x) x = x.view(x.size(0), -1) x = self.Linear_layer(x) return x
最后,构建一个对象,并加载resnet预训练的参数就可以啦~
resnet = models.resnet50(pretrained=True) model = Net(resnet)
以上这篇pytorch 更改预训练模型网络结构的方法就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- Pytorch学习笔记(I)——预训练模型(三):VGG11网络结构
- 深入浅出Tensorflow(三):训练神经网络模型的常用方法
- Pytorch学习笔记(I)——预训练模型(四):VGG13网络结构
- MatConvNet 网络模型结构可视化的方法
- Pytorch学习笔记(I)——预训练模型(五):VGG16网络结构
- matconvnet环境下训练自己的数据集及模型测试-mnist网络结构-cifar10部分数据集
- Pytorch学习笔记(I)——预训练模型(六):VGG19网络结构
- DeepMind提出训练网络新方法,快速找到最佳超参数和模型
- Pytorch学习笔记(I)——预训练模型(七):ResNet18网络结构
- pytorch学习: 构建网络模型的几种方法
- Pytorch学习笔记(I)——预训练模型(九):ResNet50网络结构
- 不需要定义神经网络结构就可以恢复模型的两方法
- Pytorch学习笔记(I)——预训练模型(十):ResNet101网络结构
- Pytorch学习笔记(I)——预训练模型(十一):ResNet152网络结构
- pytorch学习: 构建网络模型的几种方法
- 深入浅出Tensorflow(三):训练神经网络模型的常用方法
- Pytorch学习笔记(I)——预训练模型(二):修改网络结构
- 利用TensorFlow训练简单的二分类神经网络模型的方法
- DL之DNN:自定义2层神经网络TwoLayerNet模型(计算梯度两种方法)算法对MNIST数据集进行训练、预测
- 深入浅出Tensorflow(三):训练神经网络模型的常用方法