当前位置:网站首页>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 .
边栏推荐
- 德总理称乌不会获得“北约式”安全保障
- Prediction of the victory or defeat of the League of heroes -- simple KFC Colonel
- 5g NR system messages
- Which securities company has a low, safe and reliable account opening commission
- Course of causality, taught by Jonas Peters, University of Copenhagen
- 13. Enregistrement et chargement des modèles
- Password recovery vulnerability of foreign public testing
- NVIDIA Jetson测试安装yolox过程记录
- 12. RNN is applied to handwritten digit recognition
- Marubeni official website applet configuration tutorial is coming (with detailed steps)
猜你喜欢
1.线性回归
9.卷积神经网络介绍
Codeforces Round #804 (Div. 2)(A~D)
51 communicates with the Bluetooth module, and 51 drives the Bluetooth app to light up
SDNU_ACM_ICPC_2022_Summer_Practice(1~2)
Su embedded training - Day6
12.RNN应用于手写数字识别
What has happened from server to cloud hosting?
13.模型的保存和载入
Interface test advanced interface script use - apipost (pre / post execution script)
随机推荐
基于微信小程序开发的我最在行的小游戏
Serial port receives a packet of data
【笔记】常见组合滤波电路
手写一个模拟的ReentrantLock
Analysis of 8 classic C language pointer written test questions
NVIDIA Jetson测试安装yolox过程记录
Reentrantlock fair lock source code Chapter 0
tourist的NTT模板
Lecture 1: the entry node of the link in the linked list
丸子官网小程序配置教程来了(附详细步骤)
Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades(KDD20)
DNS series (I): why does the updated DNS record not take effect?
Langchao Yunxi distributed database tracing (II) -- source code analysis
基础篇——整合第三方技术
Kubernetes static pod (static POD)
[note] common combined filter circuit
fabulous! How does idea open multiple projects in a single window?
9. Introduction to convolutional neural network
12. RNN is applied to handwritten digit recognition
My best game based on wechat applet development