[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盲盒。
相关文章
|
5天前
|
文字识别 数据可视化 Python
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署)
7 0
|
机器学习/深度学习 数据采集 存储
基于PaddlePaddle的词向量实战 | 深度学习基础任务教程系列
基于PaddlePaddle的词向量实战 | 深度学习基础任务教程系列
|
计算机视觉
[Paddle2.0学习之第三步]目标检测(上)理论
[Paddle2.0学习之第三步]目标检测(上)理论
[Paddle2.0学习之第三步]目标检测(上)理论
|
机器学习/深度学习
Paddle图神经网络-学习笔记(三)
Paddle图神经网络-学习笔记(三)
98 0
Paddle图神经网络-学习笔记(三)
|
机器学习/深度学习 算法 图计算
Paddle图神经网络-学习笔记(一)
Paddle图神经网络-学习笔记(一)
208 0
Paddle图神经网络-学习笔记(一)
|
机器学习/深度学习 算法
Paddle图神经网络-学习笔记(二)
Paddle图神经网络-学习笔记(二)
88 0
Paddle图神经网络-学习笔记(二)
|
机器学习/深度学习 编解码 算法
Paddle目标检测学习笔记
Paddle目标检测学习笔记
193 0
Paddle目标检测学习笔记
|
编解码 算法 计算机视觉
Paddle目标检测学习笔记(二)
Paddle目标检测学习笔记(二)
164 0
Paddle目标检测学习笔记(二)
|
机器学习/深度学习 算法 计算机视觉
Paddle目标检测学习笔记(一)
Paddle目标检测学习笔记(一)
133 0
Paddle目标检测学习笔记(一)
|
机器学习/深度学习 存储 数据采集
[Paddle2.0学习之第四步](下)词向量之CBOW
[Paddle2.0学习之第四步](下)词向量之CBOW
[Paddle2.0学习之第四步](下)词向量之CBOW