【图像分类】实战——使用EfficientNetV2实现图像分类(Pytorch)

==

这几天学习了EfficientNetV2,对论文做了翻译,并复现了论文的代码。

论文翻译:【图像分类】 EfficientNetV2:更快、更小、更强——论文翻译_AI浩-优快云博客

代码复现:【图像分类】用通俗易懂代码的复现EfficientNetV2,入门的绝佳选择(pytorch)_AI浩-优快云博客

对EfficientNetV2想要了解的可以查看上面的文章,这篇文章着重介绍如何使用EfficientNetV2实现图像分类。Loss函数采用CrossEntropyLoss,可以通过更改最后一层的全连接方便实现二分类和多分类。数据集采用经典的猫狗大战数据集,做二分类的实现。

数据集地址:链接:https://pan.baidu.com/s/1kqhVPOqV5vklYYIFVAzAAA

提取码:3ch6

新建项目

====

新建一个图像分类的项目,在项目的跟目录新建文件夹model,用于存放EfficientNetV2的模型代码,新建EfficientNetV2.py,将【图像分类】用通俗易懂代码的复现EfficientNetV2,入门的绝佳选择(pytorch)_AI浩-优快云博客 复现的代码复制到里面,然后在model文件夹新建__init__.py空文件,model的目录结构如下:

在项目的根目录新建train.py,然后在里面写训练代码。

导入所需要的库

=======

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

from torch.autograd import Variable

from model.EfficientNetv2 import efficientnetv2_s

设置全局参数

======

设置BatchSize、学习率和epochs,判断是否有cuda环境,如果没有设置为cpu。

设置全局参数

modellr = 1e-4

BATCH_SIZE = 64

EPOCHS = 20

DEVICE = torch.device(‘cuda’ if torch.cuda.is_available() else ‘cpu’)

图像预处理

=====

在做图像与处理时,train数据集的transform和验证集的transform分开做,train的图像处理出了resize和归一化之外,还可以设置图像的增强,比如旋转、随机擦除等一系列的操作,验证集则不需要做图像增强,另外不要盲目的做增强,不合理的增强手段很可能会带来负作用,甚至出现Loss不收敛的情况。

数据预处理

transform = transforms.Compose([

transforms.Resize((224, 224)),

transforms.ToTensor(),

transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])

])

transform_test = transforms.Compose([

transforms.Resize((224, 224)),

transforms.ToTensor(),

transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])

])

读取数据

====

使用Pytorch的默认方式读取数据。数据的目录如下图:

训练集,取了猫狗大战数据集中,猫狗图像各一万张,剩余的放到验证集中。

读取数据

dataset_train = datasets.ImageFolder(‘data/train’, transform)

print(dataset_train.imgs)

对应文件夹的labe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值