阅读量:0
查看官方文档:PyTorchhttps://pytorch.org/
找到Linear Layers,如下所示
线性层函数介绍:
CLASStorch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None)[SOURCE]https://pytorch.org/docs/stable/_modules/torch/nn/modules/linear.html#Linear
参数介绍:
Parameters
线性层又叫全连接层,其中每个神经元与上一层所有神经元相连,一个简单的线性层如下图所示:
in_features指的是上图中x1,x2...xd的个数,即d
out_features 指的是上图中g1,g2...gL的个数,即L
bias:偏置,上面加不加b,就由这个bias控制,True时,加b ·
Variables
weight (torch.Tensor) :相当于上图中的
bias : 相当于上图中的b
下面以一个简单的网络结果VGG16模型为例 :
我们想实现下面这个:
import torch import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoader dataset=torchvision.datasets.CIFAR10('datasets',train=False,transform=torchvision.transforms.ToTensor(),download=True) dataloader=DataLoader(dataset,batch_size=64,drop_last=True) class Tudui(nn.Module): def __init__(self): super(Tudui,self).__init__() self.linear1 = Linear(in_features=196608,out_features=10) def forward(self,input): output = self.linear1(input) return output tudui=Tudui() for data in dataloader: imgs,targets=data print(imgs.shape) # torch.Size([64, 3, 32, 32]) imgs个数为157,最后imgs[157]个数为14张图片 # output=torch.reshape(imgs,([1,1,1,-1])) #最后一个-1代表让其自己计算 output = torch.flatten(imgs) print(output.shape) #torch. Size([1, 1, 1, 196608]) output= tudui(output) print(output.shape) #经过神经网络 torch.Size([1, 1, 1, 10])
如下图所示,pytorch提供的一些网络模型,像AlexNet,VGG,ResNet等
语义分割:Semantic Segmentationhttps://pytorch.org/vision/0.9/models.html#semantic-segmentation
目标检测、实例分割和人体结构检测(行为检测)