小土堆:Pytorch深度学习:神经网络-最大池化层的使用

今天学习神经网络-最大池化层的使用。

这段代码是一个简单的PyTorch程序,其目的是从CIFAR10数据集中读取图像,然后通过一个名为"Yang"的自定义网络模型,该模型只包含一个最大池化层(MaxPool2d),并将输入和输出的图像写入到TensorBoard的日志中。

# 导入必要的库:# - torch是PyTorch库,提供了深度学习的主要功能。# - torchvision是一个与PyTorch相关的库,提供了一些有用的工具,如预处理图像数据的方法、预训练的模型等。# - nn是PyTorch中的一个模块,提供了许多用于构建神经网络的类和函数。# - MaxPool2d是一个二维最大池化层。# - DataLoader是一个用于加载数据的工具,可以自动化数据批处理、打乱数据等操作。# - SummaryWriter是一个用于写TensorBoard日志的工具。import torchimport torchvisionfrom torch import nnfrom torch.nn import MaxPool2dfrom torch.utils.data import DataLoaderfrom torch.utils.tensorboard import SummaryWriter#  加载CIFAR10数据集,并且将数据转换为Tensor格式。dataset = torchvision.datasets.CIFAR10("../dataset", train=False, download=True,                                      transform=torchvision.transforms.ToTensor())# 使用DataLoader创建一个数据加载器,设置批量大小为64。dataloader = DataLoader(dataset, batch_size=64)
# 创建一个自定义的神经网络模型"Yang",该模型只包含一个最大池化层。class Yang(nn.Module):    def __init__(self):        super(Yang, self).__init__()        self.maxpool1 = MaxPool2d(kernel_size=3, ceil_mode=False)
    def forward(self, input):        output = self.maxpool1(input)        return outputyang = Yang()
# 创建一个SummaryWriter实例,用于写入TensorBoard日志。writer = SummaryWriter("logs")
# 在数据加载器中循环处理每个批次的数据:# - 将图像数据(输入)写入到TensorBoard日志中。# - 通过自定义的模型处理图像数据,得到输出。# - 将处理后的数据(输出)写入到TensorBoard日志中。step = 0for data in dataloader:    imgs, targets = data    writer.add_images("input", imgs, step)    output = yang(imgs)    writer.add_images("output", output, step)    step = step + 1# 所有数据处理完毕后,关闭SummaryWriter。writer.close()

在这段代码中,"Yang"模型的作用是对图像进行最大池化操作,这是一种常用的降低图像分辨率、同时保留图像主要特征的方法。通过TensorBoard,我们可以直观地看到这个过程的结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值