pytorch 模型設計專題丨

2021-10-01 04:57:44 字數 1366 閱讀 2170

複製層的初始化問題,使用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 每次迴圈開始之前,確保梯度的...