当前位置: 首页 > news >正文

使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速

本篇文章详细介绍了如何使用 PyTorch 实现经典卷积神经网络 AlexNet,并利用 Fashion-MNIST 数据集进行训练与测试。在训练完成后,通过 TensorRT 进行推理加速,以提升模型的推理效率。
本文全部代码链接:全部代码下载

环境配置

为了保证代码在 GPU 环境下顺利运行,我们将安装兼容 CUDA 11.3 的 PyTorch 版本。请使用以下命令安装 PyTorch、Torchvision 和 Torchaudio:

!pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113

为确保兼容性,还可以使用特定版本的 numpy:

!pip install numpy==1.23.0

数据加载与预处理

我们将使用 torchvision.datasets.FashionMNIST 加载 Fashion-MNIST 数据集,并对数据进行标准化处理。

将图像转换为张量
归一化图像到 [-1, 1]

from torchvision import datasets, transforms
from torch.utils.data import DataLoader

定义数据预处理

transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))  # 归一化到 [-1, 1]
])

加载数据集

train_dataset = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)
test_dataset = datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)

定义数据加载器

train_loader = DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)
test_loader = DataLoader(dataset=test_dataset, batch_size=64, shuffle=False)

AlexNet 模型定义

AlexNet 是一种包含 5 层卷积层和 3 层全连接层的经典深度卷积神经网络。以下代码展示了如何使用 PyTorch 实现 AlexNet 的结构。

import torch.nn as nn
import torch.nn.functional as Fclass AlexNet(nn.Module):def __init__(self):super(AlexNet, self).__init__()self.conv1 = nn.Conv2d(in_channels=1, out_channels=96, kernel_size=11, stride=4, padding=1)self.maxpool1 = nn.MaxPool2d(kernel_size=3, stride=2)self.conv2 = nn.Conv2d(in_channels=96, out_channels=256, kernel_size=5, stride=1, padding=2)self.maxpool2 = nn.MaxPool2d(kernel_size=3, stride=2
http://www.lryc.cn/news/480778.html

相关文章:

  • Python 数据可视化详解教程
  • springboot集成opencv开源计算机视觉库
  • CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳
  • 2024年11月8日上海帆软用户大会
  • 信息泄露漏洞一文速通
  • Android 启动时应用的安装解析过程《二》
  • 智谱AI:ChatGLM强大的生成式语言模型
  • git tag
  • Golang--反射
  • ABAP:SET CURSOR FIELD设置鼠标焦点
  • 【专题】2024年全球生物医药交易报告汇总PDF洞察(附原数据表)
  • LabVIEW气体检测系统
  • LeetCode78. 子集(2024秋季每日一题 58)
  • 推荐一款功能强大的视频修复软件:Apeaksoft Video Fixer
  • Golang--网络编程
  • 区块链技术在数字版权管理中的应用
  • WPS单元格重复值提示设置
  • Scala 的包及其导入
  • 架构师备考-概念背诵(软件工程)
  • DIP switch是什么?
  • 【销帮帮-注册_登录安全分析报告-试用页面存在安全隐患】
  • 2024年下半年系统分析师论文
  • 【计算机网络】万字详解 UDP 和 TCP
  • 创建者模式之【建造者模式】
  • 电商系统中,如何解决部分商品在短时间大量访问的单一热点问题?------Range范围分片
  • 利用VMware workstation pro 17安装 Centos7虚拟机以及修改网卡名称
  • 前端 性能优化 (图片与样式篇)
  • A021基于Spring Boot的自习室管理和预约系统设计与实现
  • 量化交易系统开发-实时行情自动化交易-Okex市场深度数据
  • Qt教程(006):QMainWindow主窗口