当前位置:网站首页>Saving and reading of network model
Saving and reading of network model
2022-07-08 01:01:00 【booze-J】
article
Preservation of network model
The way 1
The example code is as follows :
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
# Load network model
vgg16 = torchvision.models.vgg16(pretrained=False)
# Save the way 1( It not only saves the structure, but also saves some parameters in the network model ) Model structure + Model parameters
torch.save(vgg16,"vgg16_method1.pth")
torch.save(vgg16,"vgg16_method1.pth")
It not only saves the structure, but also saves some parameters in the network model ( Saved model structure + Model parameters ).
The way 2
The example code is as follows :
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
# Load network model
vgg16 = torchvision.models.vgg16(pretrained=False)
# Save the way 2( take vgg16 The parameters in the network are saved as python Dictionary form in ) Model parameters ( The official recommendation )
torch.save(vgg16.state_dict(),"vgg16_method2.pth")
torch.save(vgg16.state_dict(),"vgg16_method2.pth")
take vgg16 The parameters in the network are saved as python Dictionary form in ( Save model parameters ( The official recommendation )), It is equivalent to loading the network model first , Then load the parameters .
Reading of network model
The way 1
The example code is as follows :
import torchvision
import torch
# The way 1 -》 Save the way 1 Load model + Parameters
model = torch.load("vgg16_method1.pth")
print("model",model)
Premise is Use the way the network model is saved 1, Use it directly model = torch.load("vgg16_method1.pth")
You can load the model and parameters .
The way 2
The example code is as follows :
import torchvision
import torch
# Load network model
vgg16 = torchvision.models.vgg16(pretrained=False)
# The way 2 -》 Save the way 2 Load parameters
model = torch.load("vgg16_method2.pth")
print("model:\n",model)
# Add model parameters to the model
vgg16.load_state_dict(model)
Premise is Use the way the network model is saved 2, Use model = torch.load("vgg16_method2.pth")
Loading can only load model parameters , Well, you need to load the network model vgg16 = torchvision.models.vgg16(pretrained=False)
, Then add model parameters to the model vgg16.load_state_dict(model)
.
The trap of saving and reading network models
Write a simple network by yourself , Then use the method 1 preservation .
Sample code :
import torch
import torchvision
from torch import nn
from torch.nn import MaxPool2d
# Building neural networks
class Booze(nn.Module):
# Inherit nn.Module The initialization
def __init__(self):
super(Booze, self).__init__()
self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)
# rewrite forward function
def forward(self,x):
output = self.maxpool1(x)
return output
obj = Booze()
# Save the network model
torch.save(obj,"obj_method1.pth")
Run code , After the network model is saved successfully , Let's try loading the network model
import torchvision
import torch
model = torch.load("obj_method1.pth")
print("model",model)
Results found :
Loading the model directly in this way will report an error ! How to solve it ?
import torchvision
import torch
from torch import nn
from torch.nn import MaxPool2d
# Building neural networks
class Booze(nn.Module):
# Inherit nn.Module The initialization
def __init__(self):
super(Booze, self).__init__()
self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)
# rewrite forward function
def forward(self,x):
output = self.maxpool1(x)
return output
# trap 1
model = torch.load("obj_method1.pth")
print("model",model)
Add , Code for building neural network , Run again , You can't report an error .
边栏推荐
- [Yugong series] go teaching course 006 in July 2022 - automatic derivation of types and input and output
- 7.正则化应用
- [Yugong series] go teaching course 006 in July 2022 - automatic derivation of types and input and output
- [go record] start go language from scratch -- make an oscilloscope with go language (I) go language foundation
- 大二级分类产品页权重低,不收录怎么办?
- NTT template for Tourism
- A network composed of three convolution layers completes the image classification task of cifar10 data set
- 新库上线 | 中国记者信息数据
- 手机上炒股安全么?
- fabulous! How does idea open multiple projects in a single window?
猜你喜欢
1.线性回归
NVIDIA Jetson测试安装yolox过程记录
8道经典C语言指针笔试题解析
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
Kubernetes Static Pod (静态Pod)
1293_ Implementation analysis of xtask resumeall() interface in FreeRTOS
[OBS] the official configuration is use_ GPU_ Priority effect is true
新库上线 | CnOpenData中华老字号企业名录
4.交叉熵
Cancel the down arrow of the default style of select and set the default word of select
随机推荐
They gathered at the 2022 ecug con just for "China's technological power"
基础篇——整合第三方技术
股票开户免费办理佣金最低的券商,手机上开户安全吗
Codeforces Round #804 (Div. 2)
攻防演练中沙盘推演的4个阶段
5.过拟合,dropout,正则化
[reprint] solve the problem that CONDA installs pytorch too slowly
ABAP ALV LVC template
Is it safe to speculate in stocks on mobile phones?
语义分割模型库segmentation_models_pytorch的详细使用介绍
AI zhetianchuan ml novice decision tree
英雄联盟胜负预测--简易肯德基上校
SDNU_ACM_ICPC_2022_Summer_Practice(1~2)
Course of causality, taught by Jonas Peters, University of Copenhagen
Introduction to paddle - using lenet to realize image classification method II in MNIST
Semantic segmentation model base segmentation_ models_ Detailed introduction to pytorch
How is it most convenient to open an account for stock speculation? Is it safe to open an account on your mobile phone
v-for遍历元素样式失效
国外众测之密码找回漏洞
Where is the big data open source project, one-stop fully automated full life cycle operation and maintenance steward Chengying (background)?