MNIST數字識別

2021-08-06 06:46:40 字數 2705 閱讀 1995

參考:

mnist是乙個入門級的計算機視覺資料集,它包含各種手寫數字。

mnist資料集的官網是yann lecun』s website **

內容train-images-idx3-ubyte.gz: training set images (9912422 bytes)

訓練資料

train-labels-idx1-ubyte.gz: training set labels (28881 bytes)

訓練資料答案

t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)

測試資料

t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)

測試資料答案

正如前面提到的一樣,每乙個mnist資料單元有兩部分組成:一張包含手寫數字的和乙個對應的標籤。我們把這些設為「xs」,把這些標籤設為「ys」。訓練資料集和測試資料集都包含xs和ys,比如訓練資料集的是 mnist.train.images ,訓練資料集的標籤是 mnist.train.labels。

from tensorflow.examples

.tutorials

.mnist import input_data

mnist = input_data.read_data_sets("../../datasets/mnist_data/", one_hot=true)

print("training data size: ", mnist.train

.num_examples)

print("validating data size: ", mnist.validation

.num_examples)

print("testing data size: ", mnist.test

.num_examples)

輸出:

training

data size: 55000

validating

data size: 5000

testing

data size: 10000

從上面**可以看出,通過read_data_sets函式生成的類會自動將mnist資料集劃分為train、validation和test三個資料集。其中train這個集合內有55000張,validation集合內有5000張,這兩個組成了訓練集。test集合內有10000張,這些來自mnist提供的測試資料集。

print("train images shape: ", mnist.train

.images

.shape)

print("train labels shape: ", mnist.train

.labels

.shape)

print("validation images shape: ", mnist.validation

.images

.shape)

print("validation labels shape: ", mnist.validation

.labels

.shape)

print("test images shape: ", mnist.test

.images

.shape)

print("test labels shape: ", mnist.test

.labels

.shape)

輸出:

train images shape:  (55000, 784)

train labels shape: (55000, 10)

validation images shape: (5000, 784)

validation labels shape: (5000, 10)

test images shape: (10000, 784)

test labels shape: (10000, 10)

上面**可以看出,在mnist訓練資料集中,mnist.train.images 是乙個形狀為 [55000, 784] 的張量,第乙個維度數字用來索引,第二個維度數字用來索引每張中的畫素點。在此張量裡的每乙個元素,都表示某張裡的某個畫素的強度值,值介於0和1之間,它表示了顏色的深淺。其中0表示白色背景(background),1表示黑色前景(foreground)。

為了方便使用隨機梯度下降,可以從所有訓練資料中讀取一小部分作為乙個訓練的batch。如下**所示:

batch_size = 100

xs, ys = mnist.train

.next_batch(batch_size) # 從train的集合中選取batch_size個訓練資料。

print("x shape:", xs.shape)

print("y shape:", ys.shape)

輸出:

x shape: (100, 784)

y shape: (100, 10)

mnist手寫數字識別

import tensorflow as tf import numpy as np from tensorflow.contrib.learn.python.learn.datasets.mnist import read data sets mnist read data sets f pyth...

MNIST手寫數字識別 tensorflow

神經網路一半包含三層,輸入層 隱含層 輸出層。如下圖所示 現以手寫數字識別為例 輸入為784個變數,輸出為10個節點,10個節點再通過softmax啟用函式轉化為 值。如下,準確率可達0.9226 import tensorflow as tf from tensorflow.examples.tu...

DNN識別mnist手寫數字

提取碼 sg3f 導庫import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers...