目錄
小記
20.2.27
model=model.cuda()和model=model.to('cuda')是等價的嘛?
模型會自動初始化嘛?
訓練好的網絡模型是如何儲存的?又是如何再加載的?
哪些部分可以移到GPU上運算?
關于torch.nn.multinomial方法的深入探讨
2.28
關于熵,相對熵,KL散度,交叉熵概念的學習
關于nn.embedding的次元的定義,函數的了解,一些需要注意的點
3.1
關于loss.backward()以及其參數retain_graph的一些坑
3.2
關于pytorch網絡模型可視化函數make_dot的一些問題
未完待續。。。
小記
如題,本文用于總結學習Pytorch的一些小困惑,大的問題,可能會拉出來單寫一篇部落格,沒解決的問題也會暫且放進來,解決了之後再補上去解決方法~~ 目前本人處于菜雞階段,深度學習的理論儲備有了一些,但還沒有真正完整獨立的完成一個項目,急需真槍實彈的操練一把,不能繼續鹹魚下去了_(T-T」 ∠)_
下一周就開始正式上(網)課了,後面争取每天都能遇到一個有收獲的問題,并且在這裡進行總結~ 大家可以互相學習,互相監督呀!(*•̀ㅂ•́)و~ 如果有大佬想指點一二,請移步評論區,感激不盡!
更改模式-----簡單的問題在這裡解釋,難的直接放一個傳送門,傳送到單獨解釋的部落格~~
20.2.27
model=model.cuda()和model=model.to('cuda')是等價的嘛?
PyTorch 0.4.0
通過兩種方法使代碼相容變得非常容易:
- 張量的
屬性為所有張量提供了device
裝置。(注意:torch.device
僅适用于get_device
張量)CUDA
-
方法to
和Tensors
可用于容易地将對象移動到不同的裝置(代替以前的Modules
或cpu()
方法)cuda()
是以,現在使用Modules.to('cuda')等價于Modules.cuda()
模型會自動初始化嘛?
pytorch神經網絡模型會自動初始化嘛?
訓練好的網絡模型是如何儲存的?又是如何再加載的?
網絡模型,儲存的實際上是參數,而參數的存儲形式,實際上是一個orderedDict,即一個有序字典,而加載當然可以直接用modules.load_state_dict(orderedDict)函數,當然如果是不同的模型,需要加一個循環進行判斷,方法可以如下~:
net = originNet()
pretrainparameter = torch.load('somemodule.pth') #加載預訓練模型
netparameter = net.state_dict() #擷取目前網絡的參數
for key in pretrainparameter.keys():
if key in netparameter.keys(): #比對關鍵字
netparameter[key] = pretrainparameter[key] # 參數指派
net.load_state_dict(netparameter) #将比對參數傳入
哪些部分可以移到GPU上運算?
modules(即網絡模型)tensors(即運算張量)都可以利用to('cuda')方法轉移至GPU記憶體中進行運算。
關于torch.nn.multinomial方法的深入探讨
2.28
關于熵,相對熵,KL散度,交叉熵概念的學習
這個有一篇文章講得很好,這裡放一個連結
一文搞懂交叉熵在機器學習中的使用,透徹了解交叉熵背後的直覺
關于nn.embedding的次元的定義,函數的了解,一些需要注意的點
emmm 來補一個坑 傳送門 要注意的點也不是很多啦,3.9号才給填上的我是真的有點懶= =
3.1
關于loss.backward()以及其參數retain_graph的一些坑
emmm 因為篇幅挺長的,單獨發了一篇,傳送門~~關于loss.backward()以及其參數retain_graph的一些坑