赞
踩
归一化层(BatchNorm2d)

Reccurent Layers

主要用来文字识别之类的

运行如下代码,查看效果:
import torch
import torchvision
from torch.utils.data import DataLoader
dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataloader = DataLoader(dataset, batch_size=64)
for data in dataloader:
imgs, targets = data
print(imgs.shape)
output = torch.reshape(imgs, (1, 1, 1, -1))
print(output.shape)
结果为:
torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
再运行如下代码,把输出图像特征改为10:
import torch import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoader dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(), download=True) dataloader = DataLoader(dataset, batch_size=64, drop_last=True) class Cow(nn.Module): def __init__(self): super(Cow, self).__init__() self.linear1 = Linear(196608, 10) def forward(self, input): output = self.linear1(input) return output cow = Cow() for data in dataloader: imgs, targets = data print(imgs.shape) output = torch.reshape(imgs, (1, 1, 1, -1)) print(output.shape) output = cow(output) print(output.shape)
输出结果:
torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([1, 1, 1, 10])
torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([1, 1, 1, 10])
要注意dataloader的drop_last参数要设置为True,将数据集最后16张舍弃,不然会报错,因为最后剩下的16张不满足一个批次64进行线性化。
再换成flattern来做:
import torch import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoader dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor(), download=True) dataloader = DataLoader(dataset, batch_size=64, drop_last=True) class Cow(nn.Module): def __init__(self): super(Cow, self).__init__() self.linear1 = Linear(196608, 10) def forward(self, input): output = self.linear1(input) return output cow = Cow() for data in dataloader: imgs, targets = data print(imgs.shape) output = torch.flatten(imgs) print(output.shape) output = cow(output) print(output.shape)
运行结果如下:
torch.Size([64, 3, 32, 32])
torch.Size([196608])
torch.Size([10])
torch.Size([64, 3, 32, 32])
torch.Size([196608])
torch.Size([10])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。