【学习笔记】神经网络—线性层

avatar
作者
筋斗云
阅读量:0

查看官方文档:PyTorchicon-default.png?t=N7T8https://pytorch.org/

找到Linear Layers,如下所示 

 线性层函数介绍:

CLASStorch.nn.Linear(in_featuresout_featuresbias=Truedevice=Nonedtype=None)[SOURCE]icon-default.png?t=N7T8https://pytorch.org/docs/stable/_modules/torch/nn/modules/linear.html#Linear

参数介绍:

Parameters

  • in_features (int) – size of each input sample

  • out_features (int) – size of each output sample

  • bias (bool) – If set to , the layer will not learn an additive bias. Default: FalseTru

 线性层又叫全连接层,其中每个神经元与上一层所有神经元相连,一个简单的线性层如下图所示:

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 Segmentationicon-default.png?t=N7T8https://pytorch.org/vision/0.9/models.html#semantic-segmentation

目标检测、实例分割和人体结构检测(行为检测) 

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!