pytorch允許把在gpu上訓練的模型載入到cpu上,也允許把在cpu上訓練的模型載入到gpu上。
cpu->cpu,gpu->gpu
torch.load('gen_500000.pkl')
gpu->cpu
torch.load('gen_500000.pkl', map_location=lambda storage, loc: storage)
或:
torch.load('***.pkl', map_location='cpu') # pytorch0.4.0及以上版本
cpu->gpu1
torch.load('gen_500000.pkl', map_location=lambda storage, loc: storage.cuda(1))
單機多gpu上訓練的模型載入
在gpu或cpu上載入乙個在多gpu上訓練的模型時,會報類似如下錯誤:
unexpected key(s) in state_dict: "module.pretrained.conv1.0.weight", "module.pretrained.conv1.1.weight"這是因為在多gou上訓練的模型在儲存時候在引數名前多加了乙個「module.」字首,載入的時候把這個字首去掉就行了:
model = get_model(args.model)
device = torch.device('cpu')
# device = torch.device('cuda:0')
state_dict = torch.load('***.pth', map_location=device)
from collections import ordereddict
state_dict_new = ordereddict()
for k, v in state_dict.items():
name = k[7:] # 去掉 `module.`
state_dict_new[name] = v
model.load_state_dict(state_dict_new)
model.eval() #eval 模式
Pytorch 比較CPU和GPU的運算速度
在跑神經網路的時候,gpu的作用是很明顯的。下面比較一下cpu跑和gpu跑的區別 先用cpu跑 import torch import time for i in range 1 10 start time time.time 返回當前語句執行時的時間點 單位秒 a torch.rand i 100...
CPU 和 GPU頻率設定
在嵌入式裝置中為了降低功耗防止晶元發熱,廠商一般預設都將cpu和gpu頻率為最小,為了提高效能,減少演算法耗時需要手動將cpu或者gpu頻率設到效能模式。echo performance sys devices system cpu cpu0 cpufreq scaling governor,一般c...
CPU和GPU的區別
cpu 即 處理器,解釋計算機指令以及處理計算機軟體中的資料 gpu即圖形處理器,專門處理和繪製圖形相關的硬體。gpu時專為執行複雜的數學和 集合計算而設計的,有了它,cpu就從圖形處理的任務中解放出來,可以執行其他更多的 系統任務。硬體加速 在計算機中把計算量非常大的工作非陪給專門的硬體處理,減輕...