paddlepaddle高层API训练营第一天——手写数字识别

【自动驾驶规划】Lattice Planner Lattice Planner简介 LatticePlanner算法属于一种局部轨迹规划器,输出轨迹将直接输入到控制器,由控制器完成对局部轨迹的跟踪控制。因此,Lattice Planner输出的轨迹是一条光滑无碰撞满足车辆运动学约束和速度约束的平稳安全的局部轨迹。Lattice Planner的输入端主要由三部分组成,感知及障碍物信息、参考线信息及定位信息。局部规划模块的输出是带有速度信息的一系列轨迹点组成的轨迹,其保证了车辆控制器在车辆跟踪控制过程中的平稳性和安全性。 局部规划模块的输出是带有速 阅读详情

0. 导入相关库

import paddle
import paddle.vision.transforms as T
import numpy as np
import matplotlib.pyplot as plt
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/__init__.py:107: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import MutableMapping
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/rcsetup.py:20: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import Iterable, Mapping
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/colors.py:53: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  from collections import Sized
# 查看paddle的版本及是否成功导入
print(paddle.__version__)
2.0.0

1. 数据准备

# 数据的加载和预处理(同时进行归一化)
transform = T.Normalize(mean=[127.5], std=[127.5])
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)
eval_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)

# 数据集的查看
print(train_dataset[0][0].shape)  # 图片的尺寸
print(train_dataset[0][1][0])  # 标签值

# 可视化展示
plt.figure()
plt.imshow(train_dataset[0][0].reshape([28, 28]), cmap=plt.cm.binary)
plt.show()
(1, 28, 28)
5
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2349: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  if isinstance(obj, collections.Iterator):
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2366: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  return list(data) if isinstance(data, collections.MappingView) else data
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/numpy/lib/type_check.py:546: DeprecationWarning: np.asscalar(a) is deprecated since NumPy v1.16, use a.item() instead
  'a.item() instead', DeprecationWarning, stacklevel=1)

在这里插入图片描述

2. 模型的选择和开发

# 模型网络结构搭建
network = paddle.nn.Sequential(
    paddle.nn.Flatten(),                # input: [-1, 28, 28], output: [-1, 784]
    paddle.nn.Linear(784, 512),         # input: [-1, 784], output: [-1, 512]
    paddle.nn.ReLU(),                   # input: [-1, 512], output: [-1, 784]
    paddle.nn.Linear(512, 10)           # input: [-1, 512], output: [-1, 10]
)

# 封装模型
model = paddle.Model(network)

# 参数预加载
# model.load('model/mnist/mnist')

# 模型的配置(优化器、损失函数和评估指标)
model.prepare(
    paddle.optimizer.Adam(learning_rate=0.001, parameters=network.parameters()),  # 优化器
    paddle.nn.CrossEntropyLoss(),  # 损失函数
    paddle.metric.Accuracy()  # 评估指标
)

# 模型可视化
model.summary((1, 28, 28))

---------------------------------------------------------------------------
 Layer (type)       Input Shape          Output Shape         Param #    
===========================================================================
   Flatten-1       [[1, 28, 28]]           [1, 784]              0       
   Linear-1          [[1, 784]]            [1, 512]           401,920    
    ReLU-1           [[1, 512]]            [1, 512]              0       
   Linear-2          [[1, 512]]            [1, 10]             5,130     
===========================================================================
Total params: 407,050
Trainable params: 407,050
Non-trainable params: 0
---------------------------------------------------------------------------
Input size (MB): 0.00
Forward/backward pass size (MB): 0.01
Params size (MB): 1.55
Estimated Total Size (MB): 1.57
---------------------------------------------------------------------------
{'total_params': 407050, 'trainable_params': 407050}
# 训练参数设置并启动训练
model.fit(
    train_dataset,   # 训练集
    eval_dataset,    # 测试集
    epochs=5,        # 训练轮次
    batch_size=64,   # 批大小
    verbose=1        # 日志展示形式
)
The loss value printed in the log is the current step, and the metric is the average value of previous step.
Epoch 1/5
step  30/938 [..............................] - loss: 0.5047 - acc: 0.6646 - ETA: 9s - 11ms/ste

/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/utils.py:77: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
  return (isinstance(seq, collections.Sequence) and


step  50/938 [>.............................] - loss: 0.6721 - acc: 0.7375 - ETA: 8s - 10ms/stepstep 938/938 [==============================] - loss: 0.1966 - acc: 0.9141 - 11ms/step        
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 157/157 [==============================] - loss: 0.0678 - acc: 0.9481 - 7ms/step        
Eval samples: 10000
Epoch 2/5
step 938/938 [==============================] - loss: 0.0522 - acc: 0.9590 - 18ms/step         
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 157/157 [==============================] - loss: 0.0126 - acc: 0.9621 - 6ms/step         
Eval samples: 10000
Epoch 3/5
step 938/938 [==============================] - loss: 0.0171 - acc: 0.9686 - 17ms/step        
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 157/157 [==============================] - loss: 0.0100 - acc: 0.9694 - 6ms/step         
Eval samples: 10000
Epoch 4/5
step 938/938 [==============================] - loss: 0.0055 - acc: 0.9741 - 17ms/step        
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 157/157 [==============================] - loss: 0.0049 - acc: 0.9677 - 6ms/step         
Eval samples: 10000
Epoch 5/5
step 938/938 [==============================] - loss: 0.1630 - acc: 0.9770 - 17ms/step        
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 157/157 [==============================] - loss: 0.0020 - acc: 0.9743 - 6ms/step         
Eval samples: 10000

3. 模型评估

res = model.evaluate(eval_dataset, verbose=1)
print(res)
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 10000/10000 [==============================] - loss: 1.1921e-07 - acc: 0.9743 - 2ms/step         
Eval samples: 10000
{'loss': [1.192093e-07], 'acc': 0.9743}

4. 模型预测

def draw(img, label):
    plt.figure()
    plt.title("predict: {}".format(label))
    plt.imshow(img.reshape([28, 28]), cmap=plt.cm.binary)
    plt.show()
# 1,批量预测
res = model.predict(eval_dataset)
indexs = [2, 15, 38, 211]
for idx in indexs:
    draw(eval_dataset[idx][0], np.argmax(res[0][idx]))
Predict begin...
step 10000/10000 [==============================] - 2ms/step        
Predict samples: 10000

/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/numpy/lib/type_check.py:546: DeprecationWarning: np.asscalar(a) is deprecated since NumPy v1.16, use a.item() instead
  'a.item() instead', DeprecationWarning, stacklevel=1)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 2, 单张图片预测
img = eval_dataset[501][0]
res = model.predict_batch([img])
print(res)
draw(img, np.argmax(res))
[array([[ -3.2495534, -16.848299 ,  -2.9633887,  -4.262614 ,  -2.6580017,
         -5.9259615, -13.474122 ,  -1.5577601,  -3.4419522,  13.671286 ]],
      dtype=float32)]

/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/numpy/lib/type_check.py:546: DeprecationWarning: np.asscalar(a) is deprecated since NumPy v1.16, use a.item() instead
  'a.item() instead', DeprecationWarning, stacklevel=1)

在这里插入图片描述

5. 保存模型

# 保存动态图模型
model.save('model/mnist/mnist')

# 保存静态图模型
# model.save('model/mnist/mnist', training=False)
PCout(n) -- STM32F103RCT6 位带操作 位带操作,sys.h,PCout,PAout,PAout 阅读详情

相关推荐

【项目实战】基于STM32单片机的智能小车设计(有代码)

【1】背景意义 近些年随着国民生活水平的提升,以小车为载体的轮式机器人进入了我们的生活,尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此,基于嵌入式技术的无线通信视频监控轮式机器人应运而生。由于它们与人类工作相比具有成本低廉、安全稳定的优点,目前已经在许多危险作业以及工业场合得到了广泛应用而且轮式机器人不需要像人那样采取过多的保护措施,因此轮式机...

ShawnWang1994的博客 13万+

【强化学习】SAC算法

强化学习SAC算法+Pendulum的paddle版实现

m0_63642362的博客 4697

深入解析UDS 0x19服务:DTC状态掩码与故障诊断实战

本文深入解析了UDS诊断协议中的核心0x19服务(ReadDTCInformation),重点拆解了DTC状态掩码(DTCStatusMask)的八个状态位及其在故障生命周期中的联动逻辑。通过实战案例,详细说明了从故障发生、确认到清除的全过程,并介绍了如何利用该服务进行深度诊断,包括读取扩展数据(如冻结帧)和避免常见开发误区,是理解汽车ECU故障管理机制的关键。

weixin_29248313的博客 323

安装python包,报权限错误

【代码】安装python包,报权限错误。

qq_15821487的博客 591

验证(uvm常见问题)--子类和父类的句柄和对象问题

sv中的子类和父类 在sv中,有如下两个类,child继承于parent。然后在test module中,正确转换的方法如下面所示。其中c1,c2,p1 都指向了同一个子类的对象c1。总结如下: 一个子类的对象是包括子类的成员变量,方法和父类的成员变量,方法。 子类的句柄c1可以直接赋值给父类的句柄p1,此时p1只可以访问父类的成员变量和方法,或者子类的虚方法,比如下面调用p1.display是...

q876507447的博客 7633

VLA模型(具身智能入门十)

Vision Language Action(VLA)模型VLA模型是机器人领域的“感知-理解-执行”一体化框架,通过Transformer架构融合视觉、语言、动作模态,核心目标是让机器人在自然语言驱动下,自主完成复杂操控任务。其定义的核心在于“跨模态统一”与“具象化行动”——不仅能“看懂”“听懂”,更能“做出正确的动作”,是实现通用机器人智能的关键方向。提供通用序列建模骨架,让视觉、语言、动作能以“序列”形式统一处理;ViT将视觉输入转换为序列特征,提供“看”的能力;LLMs。

weixin_39699362的博客 9928

[机器学习] Yellowbrick使用笔记5-回归可视化

回归模型试图预测连续空间中的目标。回归计分可视化工具显示模型空间中的实例,以便更好地理解模型是如何进行预测的。我们目前已经实施了三种回归评估: 残差图Residuals Plot:绘制期望值与实际值之间的差 预测误差图Prediction Error Plot:在模型空间中绘制期望值与实际值 alpha选择:视觉调整正则化超参数 库克距离Cook’s Distance:描述了单个样本对整个回归模型的影响程度 Estimator score Visualizer包装Scikit Learn estimat

You and Me 1680

FPGA时钟设计陷阱:为什么你的MRCC引脚总触发Place 30-675错误?

本文深入解析FPGA开发中常见的Place 30-675错误,揭示MRCC引脚与时钟资源分配的关键问题。通过对比MRCC与普通IO引脚特性,分析错误根源,并提供时钟约束优化、IP核重配置和手动布局三套解决方案,帮助工程师规避时钟设计陷阱,提升FPGA系统稳定性。

potato的博客 693

模型压缩之剪枝(MLP)

你想让你大模型在不掉太多精度的前提下,进一步提升速度嘛,走过路过不要错过,手把手教你实现模型压缩中的剪枝操作。

m0_63642362的博客 3476

DDR5内存调优实战:手把手教你搞定Write Leveling Training Mode(附时序图解析)

本文深入解析DDR5内存调优中的Write Leveling Training Mode技术,详细介绍了其核心原理、硬件准备、实战步骤及常见问题解决方案。通过JESD79-5标准定义的反馈机制,帮助硬件工程师精确对齐DQS与CK信号,提升系统稳定性和数据可靠性。附有时序图解析和代码示例,适合DDR5内存系统设计与调试参考。

weixin_29256771的博客 550

杰理-tone

低音质格式切换高音质格式:切换提示音格式,未导出,编译下载没有提示音;提示音导出,再次编译下载,提示音正常高音质格式切换低音质格式:不需要导出,直接编译下载,提示音正常。

m0_67447112的博客 955

pandas常用操作大全,最全!附文档下载

????‍????‍工作中最近常用到pandas做数据处理和分析,总结了以下常用内容。 ????如想下载到本地可访问以下地址 pandas常用速查-github pandas常用速查-gitee pandas常用操作大全pandas常用速查引入依赖算法相关依赖获取数据生成df重命名列增加列缺失值处理独热编码替换值删除列数据筛选差值计算数据修改时间格式转换设置索引列折线图散点图柱状图热力图66个最常用的pandas数据分析函数从各种不同的来源和格式导入数据导出数据创建测试对象查看、检查数据数据选取数据清理筛

SeafyLiang的博客 2555

优化点列图(RMS半径)的操作数

优化点列图(RMS半径)的操作数

weixin_72050316的博客 2258

百度飞桨坚持21天深度学习架构训练营之MNIST手写识别

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

Nancynoha的博客 674

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PaddlePaddle 7日训练营CV疫情特辑总结

PaddlePaddle 7日训练营CV疫情特辑总结什么是paddle paddle?7日训练营CV疫情特辑Day 1:新冠疫情可视化一、数据准备部分代码展示二、疫情地图三、成果展示非常漂亮有木有!!!!Day 2 ~ Day 6:成果展示手势识别车牌识别口照分类PaddleSlim模型压缩我们这次项目涉及到的就是对模型进行无损量化结果展示Finally:Day 5 比赛——人流密度检测感想与心得...

weixin_42815846的博客 759

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

我做的百度飞桨PaddleOCR .NET调用库

.NET Conf 2021中国我做了一次《.NET玩转计算机视觉OpenCV》的分享,其中提到了一个效果特别好的OCR识别引擎——百度飞桨PaddleOCR,后来我逐步把它封装了...

dotNET跨平台 4956

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【AI Studio】飞桨图像分类零基础训练营 - 03 - 卷积神经网络基础

前言:第三天,老师结合ppt文图详细讲解了线性和卷积网络的构建,由简单到复杂的讲解卷积网络的发展。最后结合几个项目加深理解。愈发感觉老师讲的好了。第二天的课听完后还感觉自己什么都懂了,结果轮到自己动手搭建模型时发现自己的无知,所以今天要把各个知识点详尽列举。 这里写目录标题【AI Studio】飞桨图像分类零基础训练营 - 03 - 图像分类基础一、建立模型1.神经元2.激活函数3.前馈神经网络 / 前向传播过程 ——————————————— 【AI Studio】飞桨图像分类零基础训练营 - 03 .

Lovely_him的博客 3102

飞桨领航团图像分类零基础训练营学习笔记

目录第一课作业1.图片缩放2.图片翻转3.图片旋转4.图片亮度调节5.图片随机裁剪第二课作业1.导入需要的包2.准备数据3.网络配置4.训练模型5.用训练好的模型进行预测第三课作业-11.定义数据读取和数据预处理函数2.建立模型3.应用高阶API训练模型4.加载最佳模型并用检验模型质量5.应用已经训练好的模型进行预测第三课作业-21.数据预处理和数据增强2.配置模型与优化器3.训练模型 第一课作业 补齐代码,完成图像增广。 1.图片缩放 class Resize: def __init_

Liwu_KJW的博客 262

我的Paddle入门--Baidu AIStuio 7天训练营 Day2

Day2 手势识别 数据图片是这样的,对应的标签就是5 手势识别数据集地址下载后进行解压 !cd /home/aistudio/data/data23668 && unzip -qo Dataset.zip !cd /home/aistudio/data/data23668/Dataset && rm -f */.DS_Store # 删除无关文件 ` 解压后的...

weixin_43100127的博客 378

CUDA护城河与AI迁移:从编程入门到跨平台实战

在GPU并行计算领域,CUDA早已不只是一门编程语言,而是一套涵盖编译器、运行时、数学库与开发者生态的完整技术栈。理解其核心抽象,如Grid-Block-Thread与SM硬件映射,是掌握高性能计算的关键。随着AI辅助编码能力跃升,CUDA代码向HIP、SYCL等跨平台方案迁移的成本正在大幅降低,但性能对齐与平台特性适配仍是工程难点。无论是初次接触CUDA编程的新手,还是面临NVIDIA与AMD多平台移植的工程师,从环境搭建、向量加法实战到迁移映射与AI工具边界,系统梳理这些基础与前沿话题,都能帮助开发者在

weixin_34409357的博客 384

ImportError: cannot import name ‘get_installed_distributions‘ from ‘pip._internal.utils.misc‘【已解决】

在aistudio中,使用默认的paddlehub模型时,报错。

weixin_42991437的博客 4136

PaddlePaddle图像分类神经网络构建正则化笔记

本文主要根据第二次作业进行分析 作业要求: 补全网络代码,并运行手写数字识别项目。以出现最后的图片和预测结果为准。 首先导入必要的包 numpy---------->python第三方库,用于进行科学计算 PIL------------> Python Image Library,python第三方图像处理库 matplotlib----->python的绘图库 pyplot:matplotlib的绘图框架 os------------->提供了丰富的方法来处理文.

MiningL的博客 1503

解决: 使用paddlehub 安装jieba_paddle报 cannot import name ‘get_installed_distributions‘ from ‘pip._internal

问题描述 使用paddlehub 'hub install '安装jieba_paddle抛异常报 cannot import name 'get_installed_distributions' from 'pip._internal.utils.misc'错误。 报错信息: /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/setuptools/depends.py:2: DeprecationWarning: the

weixin_41586213的博客 2335

PaddlePaddle入门实践——手写数字识别

任务要求   能够识别手写数字0~9的图像,具体来说,将手写数字的灰度图像(28像素 x 28像素)划分到10个类别中(0 ~ 9)。要求使用PaddlePaddle框架实现模型。 数据集及环境 数据集来源: ML领域经典数据集MNIST,包含60,000 张训练图像和 10,000 张测试图像 数据说明:数据分为图片和标签,图片是28*28的像素矩阵,标签为0 ~ 9共10个数字 运行环境:PaddlePaddle2.0 + cuda11.1 + pycharm   Tips:PaddlePadd

面包猎人 5487

【已解决】DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this wa

今天遇到这样一个问题:DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe.从字面意思来看就是一个警告,而且看上去不算严重,其实就是声明变量的时候不可以用np.int而要改用int就可以了。

BetrayFree的博客 5738

训练过程acc_跟着雨哥学AI系列之三:详解飞桨框架模型训练

点击左上方蓝字关注我们课程简介:“跟着雨哥学AI”是百度飞桨开源框架近期针对高层API推出的系列课。本课程由多位资深飞桨工程师精心打造,不仅提供了从数据处理、到模型组网、模型训练、模型评估和推理部署全流程讲解;还提供了丰富的趣味案例,旨在帮助开发者更全面清晰地掌握百度飞桨框架的用法,并能够举一反三、灵活使用飞桨框架进行深度学习实践。1. 什么是模型训练?在深度学习领域,我们经常听到「模型...

weixin_33195817的博客 1244
上一篇: 在ubuntu18.04服务器配置jupyter notebook并实现远程连接
525
博客等级 码龄8年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值