初識MINST

MINST數據集的使用相當於機器學習領域的hello world.
看代碼:(裏面有詳細的註釋)

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

minst = tf.keras.datasets.mnist   # 加載數據集
(x_train, y_train), (x_test, y_test) = minst.load_data()
print(x_train.shape, y_train.shape)  # 1輸出訓練集的大小形狀。1對應下面輸出的第一行。
print(x_test.shape, y_test.shape)     # 2輸出測試集的大小形狀。
# 瞭解一下數據集的形狀大小很重要的,因爲後面的神經網絡的輸入是固定的,如果數據集和網絡的輸入不一致,
# 需要提前轉換格式使之相同。

image_index = 123
plt.imshow(x_train[image_index], cmap='Greys')   # 以灰度圖像打印出來。
# plt.imshow(x_train[image_index])  # 這個就是原圖。
plt.show()
print(x_train[image_index].shape)   # 3
x_train = np.pad(x_train, ((0, 0), (2, 2), (2, 2)), 'constant', constant_values=0)  # 這裏對原來的28*28的進行擴張,成32*32的。
# 第一個參數x_train是待擴張的數組, 第二個參數的意思是,第一個維度前後均增加0,(就是那個60000不變。)第二個維度前後均增加2,
# 第三個維度前後均增加2,(這兩句話的意思是每個28前面加2,後面加2達到32.) 'constant'的意思是按照後面的constant_value指定的值擴張。
# https://numpy.org/devdocs/reference/generated/numpy.pad.html?highlight=pad#numpy.pad 個人覺得還是example看的清楚。。
print(x_train.shape)  # 4
x_train = x_train.astype('float32')  # 轉換數據類型
x_train = x_train/255   # 歸1化處理。原來的灰度圖像是0-255的,現在統一轉換到0-1
x_train = x_train.reshape(x_train.shape[0], 32, 32, 1)  # 至於這三句話的處理有什麼實際的意義,實際上可以爲下一個博客的神經網絡的輸入服務。
print(x_train.shape)  # 5

這是效果圖:
在這裏插入圖片描述

這裏新增一個官方doc:
numpy的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章