[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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
安全 前端开发 Java
基于springboot的微信公众号管理系统(支持多公众号接入)
基于springboot的微信公众号管理系统(支持多公众号接入)
521 2
|
开发框架 JavaScript 前端开发
Vue低代码 -- 走进低代码
Vue低代码 -- 走进低代码
589 0
|
存储 对象存储 UED
CDN适用哪些场景?
CDN是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。今天为大家分享几个CDN的典型适用场景。
16726 0
|
数据可视化 搜索推荐 项目管理
有没有好用的待办事项清单软件? —— 一文带你了解
在快节奏的现代生活中,待办事项清单成为提高效率、管理时间的重要工具。它不仅帮助记录任务,还能清晰规划时间和精力,确保重要事项优先处理。本文介绍了待办事项清单的应用场景及四款推荐软件:板栗看板、Todoist、Wunderlist 和 Trello,并分析了它们的优缺点,帮助用户选择合适的工具。
有没有好用的待办事项清单软件? —— 一文带你了解
|
消息中间件 Kafka
一文吃透企业级elk技术栈:4. kafka 集群部署
一文吃透企业级elk技术栈:4. kafka 集群部署
|
监控 安全 物联网安全
物联网安全与隐私保护技术
物联网安全与隐私保护技术
460 0
|
uml
UML类图的 绘制标准 及 绘制工具
讲解绘制类图的标准,以及如何使用ProcessOn(在线工具 无需下载)轻松绘制类图
696 0
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错之遇到错误导致cdc同步失败,多次重启也不行,只能重新启动任务从最新的消费,是什么情况
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
前端开发 iOS开发 MacOS
vscode自动跟随Mac或window系统系统切换主题色-白天用亮色主题、晚上用暗黑主题
vscode自动跟随Mac或window系统系统切换主题色-白天用亮色主题、晚上用暗黑主题
1267 0
Html+Css实现——时间轴日志
本篇文章,主要讲解一下如何创建一个精美的时间轴日志页面,其中代码里具体的日志内容部分需要自行更改哦!
616 1
Html+Css实现——时间轴日志