主頁 >  其他 > 百度飛槳(PaddlePaddle)-數字識別

百度飛槳(PaddlePaddle)-數字識別

2023-05-10 08:21:35 其他

手寫數字識別任務 用于對 0 ~ 9 的十類數字進行分類,即輸入手寫數字的圖片,可識別出這個圖片中的數字,

使用 pip 工具安裝 matplotlib 和 numpy

python -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple
python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

D:\OpenSource\PaddlePaddle>python -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple
Looking in indexes: https://mirror.baidu.com/pypi/simple
Collecting matplotlib
  Downloading https://mirror.baidu.com/pypi/packages/92/01/2c04d328db6955d77f8f60c17068dde8aa66f153b2c599ca03c2cb0d5567/matplotlib-3.7.1-cp38-cp38-win_amd64.whl (7.6 MB)
     |████████████████████████████████| 7.6 MB ...
Requirement already satisfied: numpy in d:\program files\python38\lib\site-packages (1.24.3)
Collecting packaging>=20.0
  Downloading https://mirror.baidu.com/pypi/packages/ab/c3/57f0601a2d4fe15de7a553c00adbc901425661bf048f2a22dfc500caf121/packaging-23.1-py3-none-any.whl (48 kB)
     |████████████████████████████████| 48 kB 1.2 MB/s
Collecting cycler>=0.10
  Downloading https://mirror.baidu.com/pypi/packages/5c/f9/695d6bedebd747e5eb0fe8fad57b72fdf25411273a39791cde838d5a8f51/cycler-0.11.0-py3-none-any.whl (6.4 kB)
Requirement already satisfied: pillow>=6.2.0 in d:\program files\python38\lib\site-packages (from matplotlib) (9.5.0)
Collecting python-dateutil>=2.7
  Downloading https://mirror.baidu.com/pypi/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     |████████████████████████████████| 247 kB ...
Collecting importlib-resources>=3.2.0
  Downloading https://mirror.baidu.com/pypi/packages/38/71/c13ea695a4393639830bf96baea956538ba7a9d06fcce7cef10bfff20f72/importlib_resources-5.12.0-py3-none-any.whl (36 kB)
Collecting fonttools>=4.22.0
  Downloading https://mirror.baidu.com/pypi/packages/16/07/1c7547e27f559ec078801d522cc4d5127cdd4ef8e831c8ddcd9584668a07/fonttools-4.39.3-py3-none-any.whl (1.0 MB)
     |████████████████████████████████| 1.0 MB ...
Collecting pyparsing>=2.3.1
  Downloading https://mirror.baidu.com/pypi/packages/6c/10/a7d0fa5baea8fe7b50f448ab742f26f52b80bfca85ac2be9d35cdd9a3246/pyparsing-3.0.9-py3-none-any.whl (98 kB)
     |████████████████████████████████| 98 kB 862 kB/s
Collecting contourpy>=1.0.1
  Downloading https://mirror.baidu.com/pypi/packages/08/ce/9bfe9f028cb5a8ee97898da52f4905e0e2d9ca8203ffdcdbe80e1769b549/contourpy-1.0.7-cp38-cp38-win_amd64.whl (162 kB)
     |████████████████████████████████| 162 kB ...
Collecting kiwisolver>=1.0.1
  Downloading https://mirror.baidu.com/pypi/packages/4f/05/59b34e788bf2b45c7157c3d898d567d28bc42986c1b6772fb1af329eea0d/kiwisolver-1.4.4-cp38-cp38-win_amd64.whl (55 kB)
     |████████████████████████████████| 55 kB 784 kB/s
Collecting zipp>=3.1.0
  Downloading https://mirror.baidu.com/pypi/packages/5b/fa/c9e82bbe1af6266adf08afb563905eb87cab83fde00a0a08963510621047/zipp-3.15.0-py3-none-any.whl (6.8 kB)
Requirement already satisfied: six>=1.5 in d:\program files\python38\lib\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
Installing collected packages: zipp, python-dateutil, pyparsing, packaging, kiwisolver, importlib-resources, fonttools, cycler, contourpy, matplotlib
Successfully installed contourpy-1.0.7 cycler-0.11.0 fonttools-4.39.3 importlib-resources-5.12.0 kiwisolver-1.4.4 matplotlib-3.7.1 packaging-23.1 pyparsing-3.0.9 python-dateutil-2.8.2 zipp-3.15.0
WARNING: You are using pip version 21.1.1; however, version 23.1.2 is available.
You should consider upgrading via the 'D:\Program Files\Python38\python.exe -m pip install --upgrade pip' command.

D:\OpenSource\PaddlePaddle>

創建 DigitalRecognition.py

官網代碼少了 plt.show() # 要加上這句,才會顯示圖片

import paddle
import numpy as np
from paddle.vision.transforms import Normalize

transform = Normalize(mean=[127.5], std=[127.5], data_format='CHW')
# 下載資料集并初始化 DataSet
'''
飛槳在 paddle.vision.datasets 下內置了計算機視覺(Computer Vision,CV)領域常見的資料集,
如 MNIST、Cifar10、Cifar100、FashionMNIST 和 VOC2012 等,在本任務中,
先后加載了 MNIST 訓練集(mode='train')和測驗集(mode='test'),訓練集用于訓練模型,測驗集用于評估模型效果,
'''
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)
test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)
# 列印資料集里圖片數量 60000 images in train_dataset, 10000 images in test_dataset
# print('{} images in train_dataset, {} images in test_dataset'.format(len(train_dataset), len(test_dataset)))

# 模型組網并初始化網路
lenet = paddle.vision.models.LeNet(num_classes=10)
model = paddle.Model(lenet)

# 模型訓練的配置準備,準備損失函式,優化器和評價指標
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(test_dataset, batch_size=64, verbose=1)

# 保存模型
model.save('./output/mnist')
# 加載模型
model.load('output/mnist')

# 從測驗集中取出一張圖片
img, label = test_dataset[0]
# 將圖片shape從1*28*28變為1*1*28*28,增加一個batch維度,以匹配模型輸入格式要求
img_batch = np.expand_dims(img.astype('float32'), axis=0)

# 執行推理并列印結果,此處predict_batch回傳的是一個list,取出其中資料獲得預測結果
out = model.predict_batch(img_batch)[0]
pred_label = out.argmax()
print('true label: {}, pred label: {}'.format(label[0], pred_label))
# 可視化圖片
from matplotlib import pyplot as plt
plt.imshow(img[0])
plt.show()  # 要加上這句,才會顯示圖片

PyCharm運行(推薦,有錯誤能顯示出來)

Python MatplotlibDeprecationWarning Matplotlib 3.6 and will be removed two minor releases later
File -> Settings -> Tools -> Python Scientific -> 取消 Show plots in tool window,
取消后,將不會看到紅字警告提示
image

CMD 運行

D:\OpenSource\PaddlePaddle>python DigitalRecognition.py
image
image

如果碰到下列錯誤,需要加上 plt.show()
Python MatplotlibDeprecationWarning Matplotlib 3.6 and will be removed two minor releases later

MatplotlibDeprecationWarning: Support for FigureCanvases without a required_interactive_framework attribute was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
  plt.imshow(img[0])

資料集定義與加載

飛槳在 paddle.vision.datasets 下內置了計算機視覺(Computer Vision,CV)領域常見的資料集,如 MNIST、Cifar10、Cifar100、FashionMNIST 和 VOC2012 等,在本任務中,先后加載了 MNIST 訓練集(mode='train')和測驗集(mode='test'),訓練集用于訓練模型,測驗集用于評估模型效果,
飛槳除了內置了 CV 領域常見的資料集,還在 paddle.text 下內置了自然語言處理(Natural Language Processing,NLP)領域常見的資料集,并提供了自定義資料集與加載功能的 paddle.io.Dataset 和 paddle.io.DataLoader API,詳細使用方法可參考『資料集定義與加載』 章節,

另外在 paddle.vision.transforms 下提供了一些常用的影像變換操作,如對影像的翻轉、裁剪、調整亮度等處理,可實作資料增強,以增加訓練樣本的多樣性,提升模型的泛化能力,本任務在初始化 MNIST 資料集時通過 transform 欄位傳入了 Normalize 變換對影像進行歸一化,對影像進行歸一化可以加快模型訓練的收斂速度,該功能的具體使用方法可參考『資料預處理』 章節,

  • 資料集定義與加載
  • 資料預處理

模型組網

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/quick_start_cn.html#moxingzuwang

模型訓練與評估

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/quick_start_cn.html#moxingxunlianyupinggu

模型推理

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/quick_start_cn.html#moxingtuili

image

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552019.html

標籤:其他

上一篇:LP三明治機器人

下一篇:返回列表

標籤雲
其他(158726) Python(38124) JavaScript(25407) Java(18024) C(15222) 區塊鏈(8263) C#(7972) AI(7469) 爪哇(7425) MySQL(7172) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5336) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1965) Web開發(1951) HtmlCss(1932) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1875) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 百度飛槳(PaddlePaddle)-數字識別

    手寫數字識別任務 用于對 0 ~ 9 的十類數字進行分類,即輸入手寫數字的圖片,可識別出這個圖片中的數字。 使用 pip 工具安裝 matplotlib 和 numpy python -m pip install matplotlib numpy -i https://mirror.baidu.co ......

    uj5u.com 2023-05-10 08:21:35 more
  • LP三明治機器人

    2022 年 11 月 4 日,EigenPhi檢測到一種全新型別的三明治交易:一個三明治機器人擠壓了一筆增加流動性的交易,根據我們的常識,這很奇怪。這樣做有利可圖嗎?有什么限制嗎?與之前關于包括 37 筆交易的巨大三明治交易的文章不同,該機器人展示了一種截然不同的創新策略。而本文將帶你一探AMM旗 ......

    uj5u.com 2023-05-10 08:15:36 more
  • 你還在糾結怎么選IDE嗎?常用IDE工具分享

    近期有不少剛學編程的小伙伴來問我,市面上那么多IDE工具,該怎么選?今天在這里跟大家分享幾款個人比較鐘愛的IDE工具,供大家參考。 Visual Studio 優點:支持多種語言,包括C#, C++, Visual Basic等,可用于Web應用程式、桌面應用程式、移動應用程式等開發;集成了多種工具 ......

    uj5u.com 2023-05-10 08:10:08 more
  • 資料結構與演算法大作業:走迷宮程式(C語言,DFS)(代碼以及思路)

    好家伙,寫大作業,本篇為代碼的思路講解 1.大作業要求 走迷宮程式 問題描述: 以一個 m * n 的長方陣表示迷宮, 0和1分別表示迷宮的通路和障礙。 設計一個程式, 對任意設定的迷宮, 求出一條從入口到出口的通路, 或得出沒有通路的結論。 基本要求: (1) 實作一個以鏈表做存盤的堆疊型別, 然后 ......

    uj5u.com 2023-05-10 08:09:58 more
  • QUIC在京東直播的應用與實踐

    本文將分別從推流端、中臺源站、直播云CDN及播放端四個部分串燒式地介紹與直播相關的一些技術實踐,并重點介紹QUIC技術的應用情況及收益。 ......

    uj5u.com 2023-05-10 08:08:36 more
  • 1000個已成功入職的軟體測驗工程師簡歷經驗總結:軟體測驗工程師簡

    軟體測驗面試常見問題通常分為兩大類,一類是考察你的專業技能,另一類是考察你的穩定性、努力程度、情商等因素。并且所有初級測驗工程師的面試題中我發現超過90%都是基礎性的面試題,2020年只要掌握功能測驗和介面測驗,然后有一定的自動化基礎,再加上面試的時候態度ok(不卑不亢即可), 基本上在一線找一份薪... ......

    uj5u.com 2023-05-10 08:08:10 more
  • KubeEdge在邊緣計算領域的安全防護及洞察

    摘要:著重介紹Kubeedge在安全防護方面的實踐,并介紹OpenSSF在開源軟體安全方面的計劃與目標。 本文分享自華為云社區《KubeEdge在邊緣計算領域的安全防護及洞察》,作者:華為云云原生團隊。 隨著開源軟體安全漏洞持續引起世界各地政府和企業的關注,越來越多的組織、開發人員、研究人員和安全專 ......

    uj5u.com 2023-05-10 08:07:55 more
  • 使用 shell 腳本自動申請進京證 (六環外) —— debug 程序

    寫好的自動辦理六環外進京證腳本跑不通,總是回傳辦理業務人數較多 (500) 錯誤,Charles / VNET 抓包、android 交叉編譯 jq、升級 curl…都不起作用,最侄訓是神奇的 adb shell 幫了大忙,最后定位到根因,居然是用 shell 字串長度作為資料長度導致的,這錯誤犯... ......

    uj5u.com 2023-05-10 08:07:30 more
  • 2步打通ModelArts和Astro,實作AI應用快速落地

    摘要:本文以 ModelArts 的“找云寶”自動學習 AI 應用為例,結合低代碼平臺 Astro 輕應用快速實作一個“找云寶”小應用。 本文分享自華為云社區《【我與ModelArts的故事】2步打通 ModelArts 和 Astro 實作 AI 應用落地》,作者:胡琦。 引言 隨著 GPT 火爆 ......

    uj5u.com 2023-05-10 08:06:40 more
  • 【三維CAD軟體】上海道寧為您帶來國際一流的國產自主可控的三維C

    天工CAD?融合了新迪數字收購的國際一流三維CAD軟體技術和十幾年CAD軟體研發積累,是一款國產自主可控的三維CAD軟體,產品成熟度和技術能力比肩國際先進水平滿足工業企業研發設計需求 ......

    uj5u.com 2023-05-10 08:06:26 more