https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html

运行环境

PaddlePaddle==2.0.0

DEMO1

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@version: 0.0.1
@author: ShenTuZhiGang
@time: 2021/01/30 15:13
@file: paddlepaddle.py
@function:
@last modified by: ShenTuZhiGang
@last modified time: 2021/01/30 15:13
"""
import paddle
from paddle.vision.transforms import ToTensor
# 加载内置数据集
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=ToTensor())
val_dataset = paddle.vision.datasets.MNIST(mode='test', transform=ToTensor())
# 模型搭建
mnist = paddle.nn.Sequential(paddle.nn.Flatten(),paddle.nn.Linear(784, 512),paddle.nn.ReLU(),paddle.nn.Dropout(0.2),paddle.nn.Linear(512, 10)
)
model = paddle.Model(mnist)# 模型训练相关配置,准备损失计算方法,优化器和精度计算方法
model.prepare(paddle.optimizer.Adam(parameters=model.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())# 开始模型训练
model.fit(train_dataset,epochs=5,batch_size=64,verbose=1)
# 模型评估
model.evaluate(val_dataset, verbose=0)

DEMO2

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@version: 0.0.1
@author: ShenTuZhiGang
@time: 2021/01/30 15:13
@file: paddlepaddle.py
@function:
@last modified by: ShenTuZhiGang
@last modified time: 2021/01/30 15:13
"""
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import paddle
from paddle.vision.transforms import ToTensor# 加载内置数据集
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=ToTensor())
val_dataset = paddle.vision.datasets.MNIST(mode='test', transform=ToTensor())
train_images = train_dataset.images
train_labels = train_dataset.labels
test_images = val_dataset.images
test_labels = val_dataset.labels
class_names = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']plt.figure(figsize=(10, 10))
for i in range(25):plt.subplot(5, 5, i + 1)plt.xticks([])plt.yticks([])plt.grid(False)plt.imshow(Image.fromarray(np.reshape(train_images[i], newshape=(28, 28))), cmap=plt.cm.binary)plt.xlabel(class_names[train_labels[i][0]])
plt.show()
# 模型搭建
mnist = paddle.nn.Sequential(paddle.nn.Flatten(),paddle.nn.Linear(784, 512),paddle.nn.ReLU(),paddle.nn.Dropout(0.2),paddle.nn.Linear(512, 10)
)
model = paddle.Model(mnist)# 模型训练相关配置,准备损失计算方法,优化器和精度计算方法
model.prepare(paddle.optimizer.Adam(parameters=model.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())
# 开始模型训练
model.fit(train_dataset,epochs=5,batch_size=64,verbose=1)
model.summary()
# 模型评估
test = model.evaluate(val_dataset, verbose=0)print('\nTest accuracy:', test)
probability_model = paddle.nn.Sequential(mnist,paddle.nn.Softmax())
predictions = probability_model(paddle.to_tensor(test_images)).numpy()
print(predictions[0])
print(np.argmax(predictions[0]))
print(test_labels[0])def plot_image(i, predictions_array, true_label, img):predictions_array, true_label, img = predictions_array, true_label[i][0], img[i]plt.grid(False)plt.xticks([])plt.yticks([])plt.imshow(Image.fromarray(np.reshape(img, newshape=(28, 28))), cmap=plt.cm.binary)predicted_label = np.argmax(predictions_array)if predicted_label == true_label:color = 'blue'else:color = 'red'plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],100 * np.max(predictions_array),class_names[true_label]),color=color)def plot_value_array(i, predictions_array, true_label):predictions_array, true_label = predictions_array, true_label[i][0]plt.grid(False)plt.xticks(range(10))plt.yticks([])thisplot = plt.bar(range(10), predictions_array, color="#777777")plt.ylim([0, 1])predicted_label = np.argmax(predictions_array)thisplot[predicted_label].set_color('red')thisplot[true_label].set_color('blue')i = 0
plt.figure(figsize=(6, 3))
plt.subplot(1, 2, 1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1, 2, 2)
plot_value_array(i, predictions[i], test_labels)
plt.show()i = 12
plt.figure(figsize=(6, 3))
plt.subplot(1, 2, 1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1, 2, 2)
plot_value_array(i, predictions[i], test_labels)
plt.show()# Plot the first X test images, their predicted labels, and the true labels.
# Color correct predictions in blue and incorrect predictions in red.
num_rows = 5
num_cols = 3
num_images = num_rows * num_cols
plt.figure(figsize=(2 * 2 * num_cols, 2 * num_rows))
for i in range(num_images):plt.subplot(num_rows, 2 * num_cols, 2 * i + 1)plot_image(i, predictions[i], test_labels, test_images)plt.subplot(num_rows, 2 * num_cols, 2 * i + 2)plot_value_array(i, predictions[i], test_labels)
plt.tight_layout()
plt.show()# Grab an image from the test dataset.
img = test_images[1]print(img.shape)# Add the image to a batch where it's the only member.
img = (np.expand_dims(img, 0))print(img.shape)predictions_single = model.predict([img])print(predictions_single)plot_value_array(1, predictions_single[0][0][0], test_labels)
_ = plt.xticks(range(10), class_names, rotation=45)print(np.argmax(predictions_single[0][0]))

参考文章

基本分类:对服装图像进行分类

TensorFlow 教程——手写数字识别

PaddlePaddle——手写数字识别DEMO相关推荐

  1. BP神经网络实现手写数字识别Python实现,带GUI手写画板

    BP神经网络实现手写数字识别 BP神经网络模型 用tkinter编写用于手写输入的画板 程序运行的效果截图 在B站看了一个机器学习基础的视频( 链接)后,发现到资料里面有一个用BP神经网络对手写数字进 ...

  2. 动手学PaddlePaddle(4):MNIST(手写数字识别)

    本次练习将使用 PaddlePaddle 来实现三种不同的分类器,用于识别手写数字.三种分类器所实现的模型分别为 Softmax 回归.多层感知器.卷积神经网络. 您将学会 实现一个基于Softmax ...

  3. 使用paddlepaddle进行手写数字识别

    导读 MNIST手写数字数据集作为深度学习入门的数据集是我们经常都会使用到的,包含了0~9共10个数字类别的图片,每张图片的大小为28X28,一共包含了60000张训练集图片和10000张测试集图片. ...

  4. Java软件研发工程师转行之深度学习(Deep Learning)进阶:手写数字识别+人脸识别+图像中物体分类+视频分类+图像与文字特征+猫狗分类

    本文适合于对机器学习和数据挖掘有所了解,想深入研究深度学习的读者 1.对概率基本概率有所了解 2.具有微积分和线性代数的基本知识 3.有一定的编程基础(Python) Java软件研发工程师转行之深度 ...

  5. 深度学习数字仪表盘识别_【深度学习系列】手写数字识别实战

    上周在搜索关于深度学习分布式运行方式的资料时,无意间搜到了paddlepaddle,发现这个框架的分布式训练方案做的还挺不错的,想跟大家分享一下.不过呢,这块内容太复杂了,所以就简单的介绍一下padd ...

  6. pyTorch入门(六)——实战Android Minist OpenCV手写数字识别(附源码地址)

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为4239字,预计阅读12分钟 前言 前面几篇文章实现了pyTorch训练模型,然后在Windows平台用C++ OpenCV D ...

  7. 用tensorflow.js实现浏览器内的手写数字识别

    原文 简介 Tensorflow.js是google推出的一个开源的基于JavaScript的机器学习库,相对与基于其他语言的tersorflow库,它的最特别之处就是允许我们直接把模型的训练和数据预 ...

  8. Caffe MNIST 手写数字识别(全面流程)

    目录 1.下载MNIST数据集 2.生成MNIST图片训练.验证.测试数据集 3.制作LMDB数据库文件 4.准备LeNet-5网络结构定义模型.prototxt文件 5.准备模型求解配置文件_sol ...

  9. ANN原来如此简单!——用Excel实现的MNIST手写数字识别(之三)

    ANN原来如此简单 人工神经网络目前仍然是一个火热的话题,许多人都对它充满了兴趣.然而,对于想了解ANN具体是怎么回事的同学来说,往往缺乏一个足够简单可视化的方法去了解神经网络的内部构造.网络上的各种 ...

最新文章

  1. SCI写作|Tweet转发最多的好文之一:写好结构化论文(背景-内容-结论)的十条规则!...
  2. 第 4 章 Glance - 022 - 如何使用 OpenStack CLI
  3. Feature Pyramid Networks for Object Detection 论文笔记
  4. mysql 按顺序添加_MySQL按顺序排序
  5. java 集合操作_Java 集合的操作 个人方法总结
  6. Vue的父子组件通信(转载)
  7. 我在开发中所遇到的iOS7新特性以及iOS7与iOS6的适配问题总结
  8. iOS 开源播放器ijkplayer播放视频设置缓存
  9. Java8 处理日期和时间
  10. android studio调试时在断点停不下来
  11. 苹果又来割韭菜?一块擦屏布卖145元,这玩意到底是不是智商税?
  12. opencv 骨架提取/图片细化 代码
  13. HTML特殊字符编码对照表 —— (二)
  14. Social LSTM:Human Trajectory Prediction in Crowded Spaces 翻译
  15. 【VMware】主机与虚拟机之间的数据传输(复制、粘贴、拖拽)
  16. 30个HTML+CSS前端开发案例(四)
  17. ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10)
  18. 威锋网金狮奖落下大幕,2017年度科技榜单出炉
  19. JavaScript进阶(九)
  20. 西门子s7-200smart程序块pou加密解锁方法

热门文章

  1. 海拨3000点位的岛型堰塞湖
  2. java中path和classpath_java中的环境变量path和classpath的作用-Go语言中文社区
  3. centos安装python3小白_在Linux CentOS7 下安装 python3
  4. python交叉编译_交叉编译Python3.6.2,使用海思arm-hisiv200-linux-gcc,移植到arm开发板上...
  5. java kettle6_Java调用Kettle6的transaction和job
  6. 需要自我总结的知识点
  7. html下拉折叠菜单,原生Js_实现简单的下拉折叠菜单(添加弹出动画效果)
  8. python 曲线回归_线性回归——Python代码实现
  9. matlab冲击噪声,如何用MATLAB生成噪声和冲击混合信号
  10. 学妹问我:怎么从网页下载所有图片?我答:天机不可泄露