1. 程式人生 > 其它 >21 線性層及其他層介紹

21 線性層及其他層介紹

一、正則化層

加快神經網路的訓練速度

  • 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)

  • 人臉檢測+姿態檢測