[Paddle2.0学习之第二步]实现图像分类

简介: [Paddle2.0学习之第二步]实现图像分类

172f89721af180ccb871220fd9e90550.png

经典五步:

1. 导包

# 从paddle.vision.models 模块中import 残差网络,VGG网络,LeNet网络
from paddle.vision.models import resnet50, vgg16, LeNet
from paddle.vision.datasets import Cifar10
from paddle.optimizer import Momentum
from paddle.regularizer import L2Decay
from paddle.nn import CrossEntropyLoss
from paddle.metric import Accuracy
from paddle.vision.transforms import Transpose


2. 处理数据

# 使用Cifar10数据集
train_dataset = Cifar10(mode='train', transform=Transpose())
val_dataset = Cifar10(mode='test', transform=Transpose())
train_dataset[0]
(array([[[178., 178., 178., ..., 170., 168., 165.],
         [180., 179., 180., ..., 173., 171., 168.],
         [177., 177., 178., ..., 171., 169., 167.],
         ...,
         [112., 113., 114., ..., 100.,  98., 101.],
         [112., 112., 113., ..., 102., 102., 102.],
         [103., 100., 103., ...,  92.,  93.,  91.]],
        [[176., 176., 176., ..., 168., 166., 163.],
         [178., 177., 178., ..., 171., 169., 166.],
         [175., 175., 176., ..., 169., 167., 165.],
         ...,
         [107., 109., 110., ...,  97.,  94.,  95.],
         [102., 103., 103., ...,  95.,  93.,  92.],
         [ 96.,  93.,  95., ...,  84.,  86.,  84.]],
        [[189., 189., 189., ..., 180., 177., 174.],
         [191., 190., 191., ..., 182., 180., 177.],
         [188., 188., 189., ..., 180., 178., 176.],
         ...,
         [107., 108., 110., ...,  94.,  93.,  95.],
         [101., 102., 103., ...,  93.,  91.,  91.],
         [ 92.,  90.,  94., ...,  80.,  80.,  77.]]], dtype=float32), array(0))


3. 创建模型

import paddle
# 确保从paddle.vision.datasets.Cifar10中加载的图像数据是np.ndarray类型
paddle.vision.set_image_backend('cv2')
# 调用resnet50模型
model = paddle.Model(resnet50(pretrained=False, num_classes=10))


4. 优化准备

# 定义优化器
optimizer = Momentum(learning_rate=0.01,
                     momentum=0.9,
                     weight_decay=L2Decay(1e-4),
                     parameters=model.parameters())
# 进行训练前准备
model.prepare(optimizer, CrossEntropyLoss(), Accuracy(topk=(1, 5)))


5. 训练

#开启GPU
use_gpu = True
paddle.set_device('gpu:0') if use_gpu else paddle.set_device('cpu')
# 启动训练
model.fit(train_dataset,
          val_dataset,
          epochs=30,
          batch_size=64,
          save_dir="./output",
          num_workers=10)

90ec3797e4669a5286c3744b929bff03.png

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
机器学习/深度学习 数据采集 PyTorch
我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
详细介绍了卷积神经网络 LeNet-5 的理论部分和使用 PyTorch 复现 LeNet-5 网络来解决 MNIST 数据集和 CIFAR10 数据集。然而大多数实际应用中,我们需要自己构建数据集,进行识别。因此,本文将讲解一下如何使用 LeNet-5 训练自己的数据。
299 0
|
机器学习/深度学习 数据采集 存储
基于PaddlePaddle的词向量实战 | 深度学习基础任务教程系列
基于PaddlePaddle的词向量实战 | 深度学习基础任务教程系列
|
API 异构计算
使用OpenVINO 和 PaddlePaddle 进行图像分类预测
使用OpenVINO 和 PaddlePaddle 进行图像分类预测
290 0
使用OpenVINO 和 PaddlePaddle 进行图像分类预测
|
机器学习/深度学习 编解码 算法
Paddle目标检测学习笔记
Paddle目标检测学习笔记
219 0
Paddle目标检测学习笔记
|
计算机视觉
[Paddle2.0学习之第三步]目标检测(上)理论
[Paddle2.0学习之第三步]目标检测(上)理论
[Paddle2.0学习之第三步]目标检测(上)理论
|
编解码 算法 计算机视觉
Paddle目标检测学习笔记(二)
Paddle目标检测学习笔记(二)
188 0
Paddle目标检测学习笔记(二)
|
机器学习/深度学习 算法 计算机视觉
Paddle目标检测学习笔记(一)
Paddle目标检测学习笔记(一)
152 0
Paddle目标检测学习笔记(一)
|
人工智能 JSON 数据可视化
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战
|
API 容器
paddle手写数字识别解析(多方法)
paddle手写数字识别解析(多方法)
248 0
paddle手写数字识别解析(多方法)
|
机器学习/深度学习 计算机视觉
使用paddle搭建多种卷积神经网络实现Cifar10数据集 解析
本项目把几大重要的卷积神经网络进行了解析使用了Cifar10 项目是陆平老师的,解析采取了由上至下的方式,上面的解析详细,下面的可能没有标注 如果有疑问可以留言或私聊我都可以。
430 0
使用paddle搭建多种卷积神经网络实现Cifar10数据集 解析