21 線性層及其他層介紹
阿新 • • 發佈:2022-05-23
一、正則化層
加快神經網路的訓練速度
- BATCHNORM2D
C:代表channel 需要輸入
二、Recurrent層
用於文字識別
三、Transformer層
四、線性層
使用比較多
-
舉例:
-
程式碼
點選檢視程式碼
import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoader import torch # 測試集 test_data=torchvision.datasets.CIFAR10(root="./CIFAR10_dataset",transform=torchvision.transforms.ToTensor(),train=False,download=True) test_loader=DataLoader(dataset=test_data,batch_size=64) #模型定義 class Tudui(nn.Module): def __init__(self): super(Tudui, self).__init__() self.linear1=Linear(196608,10) def forward(self,input): output=self.linear1(input) return output #宣告模型 tudui=Tudui() for data in test_loader: imgs,targets=data print(imgs.shape) #torch.Size([64, 3, 32, 32]) # output=torch.reshape(imgs,(1,1,1,-1))#-1表示寬隨大小自由設定 # print(output.shape) #torch.Size([1, 1, 1, 196608]) #展平輸入向量 output=torch.flatten(imgs) print(output.shape) #torch.Size([196608]) #呼叫模型 output=tudui(output) print(output.shape) #torch.Size([10])
- 執行效果
五、Dropout層
隨機地將input的tensor中的一些元素變為0(會設定一個概率為p)
防止過擬合
六、Embedding層
用於自然語言處理當中
七、重點講解
- 棕色是在一個特定網路中一起使用
- 本章重點講解線性層,其他方法比較簡單
八、pytorch中自帶的模型
torchvision->torchvision.models(版本0.9.0)
- 人臉檢測+姿態檢測