複製層的初始化問題,使用deepcopy
import torch
import torch.nn as nn
import copy
class
mymodule
(nn.module)
:def
__init__
(self)
:super
(mymodule, self)
.__init__(
) self.layer = nn.linear(10,
10,bias=
false
)# copy layer
self.copy_layer01 = copy.copy(self.layer)
self.copy_layer02 = copy.copy(self.layer)
self.deep_copy_layer03 = copy.deepcopy(self.layer)
# nn.init.normal_(self.layer.weight, 0, 20.0)
nn.init.normal_(self.copy_layer01.weight,0,
20.0
) nn.init.normal_(self.copy_layer02.weight,0,
20.0
) nn.init.normal_(self.deep_copy_layer03.weight,0,
20.0
)print
(list
(self.copy_layer01.parameters())
[0][
0][0
])print
(list
(self.copy_layer02.parameters())
[0][
0][0
])print
(list
(self.deep_copy_layer03.parameters())
[0][
0][0
])defforward
(self, x)
:return x
【結果】
tensor(
16.5385
)tensor(
16.5385
)tensor(
41.5840
) ×不同×
任何不好批量處理的tensor的操作,都可以先.view() 和 .transpose()成 [b, c, n] 或者 [b, d] 來做。
比如svd操作,torch.svd()
只能作用於兩個維度,如果是四個維度的資料就要想辦法先變成兩個維度。
pytorch設計模型
1.nn.modulelist使對於加入其中的子模組,不必在forward中依次呼叫 nn.sequentialt使對於加入其中的子模組在forward中可以通過迴圈實現呼叫 2.pytorch中nn.modulelist和nn.sequential的用法和區別 nn.sequential定義的網路...
pytorch 網路模型的設計 與繼承
參考 來自 深度特徵提取入門 1.網路模型 senet 參照 model implement method1 從models庫直接匯出18層 from torchvision import models resnet18 models.resnet18 pretrained 0 print resn...
Pytorch 四 訓練模型
1.在前三部分已經分別完成了資料的處理 神經網路的定義,還有優化器 損失函式的選擇,這次我們將開始學習如何訓練模型。2.模型的訓練其實也是套路,大致分為一下五個部分。1 載入trainloader中的資料,並將其轉換為variable 形式的資料,作為神經網路的輸入。2 每次迴圈開始之前,確保梯度的...