看一下我们前面学习过的工具
棕色框的不常用,这节学习Linear Layers(线性激活函数)
线性激活函数
这是一个神经网络,这一节的工具就是将1×1×4096变成1×1×1000,但是一张图片是二维的,所以还需要方法将7×7×512变为1×1×4096
直接代码演示
import torch import torchvision from torch.nn import Module from torch.nn import Linear import torchvision.transforms from torch.utils.data import DataLoader #先像往常一样加载一下数据集 dataset = torchvision.datasets.CIFAR10("./dataset2", train=False, transform=torchvision.transforms.ToTensor(),download=True) dataloader = DataLoader(dataset,batch_size=64) target = 0 class Tudui(Module): def __init__(self): super(Tudui, self).__init__() #in_features输入个数,out_features输出的个数 self.linear1=Linear(in_features=196608,out_features=10) def forward(self, x): return self.linear1(x) tudui = Tudui() for data in dataloader: img,tar = data print(img.shape) #flatten,将图像一维化的函数 output1 = torch.flatten(img) output2 = torch.reshape(img,[1,1,1,-1]) print(output1.shape) print(output2.shape) output3=tudui(output1) print(output3.shape) target+=1 if target == 10: break;
可以看到输出的shape:
如果我们不做一维演变就会报错: