基于Pytorch框架构建AlexNet模型

一、判断环境

1.导入必要的库

torch.optim as optim: 导入 PyTorch 的优化器模块,用于定义优化器。
torch: 导入 PyTorch 的主库,提供神经网络和自动微分的核心功能。
torch.nn as nn: 导入 PyTorch 的神经网络模块,提供构建神经网络所需的层和功能。
torch.nn.parallel: 导入 PyTorch 的并行模块,用于在多GPU上运行模型。
torch.optim: 导入 PyTorch 的优化器模块,用于定义优化器。
torch.utils.data: 导入 PyTorch 的数据处理模块,用于处理数据集和数据加载器
torch.utils.data.distributed: 导入 PyTorch 的分布式数据处理模块,用于处理分布式数据。
torchvision.transforms as transforms: 导入 PyTorch 的图像变换模块,用于数据增强和预处理。
torchvision.datasets as datasets: 导入 PyTorch 的数据集模块,用于加载和访问数据集。
torchvision.models: 导入 PyTorch 的预训练模型模块,用于加载预训练的模型。
from torch.autograd import Variable: 导入 PyTorch 的自动微分模块,用于定义张量为可微变量。
from torchvision import models: 导入 PyTorch 的预训练模型模块,用于加载预训练的模型。
import os: 导入 Python 的操作系统模块,用于操作文件和目录。
from PIL import Image: 导入 Python 的图像处理库 PIL,用于打开和操作图像。
import cv2: 导入 OpenCV 库,用于处理图像和视频。
import torch.optim.lr_scheduler as lr_scheduler: 导入 PyTorch 的学习率调度器模块,用于调整学习率。

import torch.optim as optim
import torch
import torch.nn as nn
import torch.nn.parallel
import torch.optim
import torch.utils.data
import torch.utils.data.distributed
import torchvision.transforms as transforms
import torchvision.datasets as datasets
import torchvision.models
from torch.autograd import Variable
from torch.nn import Conv2d
from tqdm import tqdm
from torchvision import models
import os
from PIL import Image
import cv2
import torch.optim.lr_scheduler as lr_scheduler

2.判断环境

根据 DEVICE 的值来决定是使用 CPU 还是 GPU 进行计算。

#判断环境是CPU运行还是GPU
DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
DEVICE

运行结果:
在这里插入图片描述

二、定义字典

1.定义字典

定义一个名为 transform111 的字典,其中包含了两个键值对,分别对应于训练和验证数据集的图像变换。这些变换通常用于数据增强和预处理,以提高模型的泛化能力和性能。

transform111 字典的结构如下:
'train': 训练数据集的图像变换。

  • transforms.RandomResizedCrop(size=256, scale=(0.8, 1.0)):
    从原始图片中随机裁剪一个大小为 256x256 的区域,裁剪区域的缩放范围为 0.8 到 1.0。

  • transforms.RandomRotation(degrees=15): 随机旋转图片 15 度。

  • transforms.RandomHorizontalFlip(): 随机水平翻转图片。

  • transforms.CenterCrop(size=224): 从裁剪后的图片中中心裁剪一个大小为 224x224 的区域。

  • transforms.ToTensor(): 将 PIL 图像转换为 PyTorch 张量。

  • transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]):
    对图像进行归一化处理,将每个通道的均值和标准差调整为 0.485、0.456、0.406 和 0.229、0.224、0.225。

'val': 验证数据集的图像变换。

  • transforms.Resize(size=256): 将图片大小调整为 256x256。
  • transforms.CenterCrop(size=224): 从调整后的图片中中心裁剪一个大小为 224x224 的区域。
  • transforms.ToTensor(): 将 PIL 图像转换为 PyTorch 张量。
  • transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]):
    对图像进行归一化处理,将每个通道的均值和标准差调整为 0.485、0.456、0.406 和 0.229、0.224、0.225。
transform111 = {
   
    'train': transforms.Compose([
        transforms.RandomResizedCrop(size=256, scale=(0.8, 1.0)),
        transforms.RandomRotation(degrees=15),
        transforms.RandomHorizontalFlip(),
        transforms.CenterCrop(size=224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406],
                             [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
        transforms.Resize(size=256),
        transforms.CenterCrop(size=224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406],
                             [0.229, 0.224, 0.225])
    ])
}
transform111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值