網站首頁 編程語言 正文
一、讀寫文件
1.加載和保存張量
import torch from torch import nn from torch.nn import functional as F import os path = os.path.join(os.getcwd(), "") x = torch.arange(4) torch.save(x, path + "x-file")
現在我們可以將存儲在文件中的數據讀回內存
x2 = torch.load(path + "x-file") x2
tensor([0, 1, 2, 3])
我們可以存儲一個張量列表,然后把他們讀回內存
y = torch.zeros(4) torch.save([x, y], path + 'x-file') x2, y2 = torch.load(path + 'x-file') (x2, y2)
(tensor([0, 1, 2, 3]), tensor([0., 0., 0., 0.]))
我們甚至可以寫入或讀取從字符串映射到張量的字典。當我們要讀取或寫入模型中的所有權重時,這很方便
mydict = {'x': x, 'y': y} torch.save(mydict, path + 'mydict') mydict2 = torch.load('mydict') mydict2
{'x': tensor([0, 1, 2, 3]), 'y': tensor([0., 0., 0., 0.])}
2.加載和保存模型
保存單個權重向量確實有用,但是如果我們想保存整個模型,并在之后加載他們,單獨保存每個向量則會變得很麻煩。畢竟,我們可能有數百個參數分布在各處。深度學習框架提供了內置函數來保存和加載整個網絡。需要注意的細節是,這里的保存模型并不是保存整個模型,而只是保存了其中的所有參數。
為了恢復模型,我們需要用代碼生成框架,然后從磁盤加載參數。
net = MLP() X = torch.randn(size=(2, 20)) Y = net(X)
我們將模型的參數存儲在一個叫做“mlp.params
”的文件中
torch.save(net.state_dict(), 'mlp.params')
為了恢復模型,我們實例化了原始多層感知機模型的一個備份。這里我們不需要隨機初始化模型參數,而是直接讀取文件中的參數
clone = MLP() clone.load_state_dict(torch.load('mlp.params')) clone.eval()
MLP( ? (hidden): Linear(in_features=20, out_features=256, bias=True) ? (out): Linear(in_features=256, out_features=10, bias=True) )
由于兩個實例具有相同的模型參數,在輸入相同的X時,兩個實例的計算結果應該相同
Y_clone = clone(X) Y_clone == Y
tensor([[True, True, True, True, True, True, True, True, True, True], ? ? ? ? [True, True, True, True, True, True, True, True, True, True]])
原文鏈接:https://blog.csdn.net/qq_46311811/article/details/123509031
相關推薦
- 2022-04-30 C#操作DataGridView設置單元格只讀_C#教程
- 2022-12-24 C++中析構函數為何是虛函數_C 語言
- 2023-01-20 DeveloperSharp?高效分頁使用詳解_數據庫其它
- 2022-04-19 Windows中Python上傳文件到Liunx下的fastdfs
- 2022-10-10 React?Hooks鉤子中API的使用示例分析_React
- 2022-07-28 Jquery回調對象與延遲對象用法詳解_jquery
- 2022-06-18 C#多線程的ResetAbort()方法_C#教程
- 2023-03-22 Python中數值比較的效率_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支