torch.jit.load¶
- torch.jit.load(f, map_location=None, _extra_files=None, _restore_shapes=False)[源][源]¶
載入之前使用 torch.jit.save 儲存的 ScriptModule 或 ScriptFunction。
所有之前儲存的模組,無論其裝置是什麼,都會先載入到 CPU,然後再移動到它們儲存時所在的裝置。如果此操作失敗(例如,因為執行時系統沒有某些裝置),則會引發異常。
- 引數
f – 一個檔案狀物件(必須實現 read、readline、tell 和 seek 方法),或者一個包含檔名的字串
map_location (string or torch.device) – torch.jit.save 中
map_location的簡化版本,用於將儲存動態重新對映到另一組裝置。_extra_files (dictionary of filename to content) – 對映中給出的額外檔名將被載入,其內容將儲存在提供的對映中。
_restore_shapes (bool) – 載入時是否使用儲存的輸入重新跟蹤模組
- 返回值
一個 ScriptModule 物件。
警告
可以構建惡意 pickle 資料,這些資料將在 func:torch.jit.load 期間執行任意程式碼。切勿載入可能來自不受信任來源或可能已被篡改的資料。僅載入您信任的資料。
示例: .. testcode
import torch import io torch.jit.load('scriptmodule.pt') # Load ScriptModule from io.BytesIO object with open('scriptmodule.pt', 'rb') as f: buffer = io.BytesIO(f.read()) # Load all tensors to the original device torch.jit.load(buffer) # Load all tensors onto CPU, using a device buffer.seek(0) torch.jit.load(buffer, map_location=torch.device('cpu')) # Load all tensors onto CPU, using a string buffer.seek(0) torch.jit.load(buffer, map_location='cpu') # Load with extra files. extra_files = {'foo.txt': ''} # values will be replaced with data torch.jit.load('scriptmodule.pt', _extra_files=extra_files) print(extra_files['foo.txt'])