深度入門學習 tensorflow讀取mnist

2021-10-09 23:01:33 字數 3165 閱讀 8551

import tensorflow as tf

import matplotlib.pyplot as plt

''' 讀取mnist資料方法一'''

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets(

'mnist_data'

,one_hot=

true

)'''1)獲得資料集的個數'''

train_nums = mnist.train.num_examples #訓練集個數

validation_nums = mnist.validation.num_examples

test_nums = mnist.test.num_examples #測試集個數

print

('mnist資料集的個數'

)print

(' >>>train_nums=%d'

% train_nums,

'\n'

,#輸出55000

'>>>validation_nums=%d'

% validation_nums,

'\n'

,#輸出5000

'>>>test_nums=%d'

% test_nums,

'\n'

)#輸出10000

'''2)獲得資料值'''

train_data = mnist.train.images #所有訓練資料

val_data = mnist.validation.images #(5000,784)

test_data = mnist.test.images #(10000,784)

print

('>>>訓練集資料大小:'

,train_data.shape,

'\n'

,'>>>一副影象的大小:'

,train_data[0]

.shape)

'''3)獲取標籤值label=[0,0,...,0,1],是乙個1*10的向量'''

train_labels = mnist.train.labels #(55000,10)

val_labels = mnist.validation.labels #(5000,10)

test_labels = mnist.test.labels #(10000,10)

print

('>>>訓練集標籤陣列大小:'

,train_labels.shape,

'\n'

,'>>>一副影象的標籤大小:'

,train_labels[1]

.shape,

'\n'

,'>>>一副影象的標籤值:'

,train_labels[0]

)'''4)批量獲取資料和標籤【使用next_batch(batch_size)】'''

batch_size =

100#每次批量訓練100幅影象

batch_xs,batch_ys = mnist.train.next_batch(batch_size)

print

('使用mnist.train.next_batch(batch_size)批量讀取樣本\n'

)print

('>>>批量讀取100個樣本:資料集大小='

,batch_xs.shape,

'\n'

,'>>>批量讀取100個樣本:標籤集大小='

,batch_ys.shape)

#xs是影象資料(100,784);ys是標籤(100,10)

'''5)顯示影象'''

plt.figure(

)for i in

range

(100):

im = train_data[i]

.reshape(28,

28)im = batch_xs[i]

.reshape(28,

28)plt.imshow(im,

'gray'

)#plt.imshow()函式負責對影象進行處理,並顯示其格式,但是不能顯示。其後跟著plt.show()才能顯示出來。

#plt.imshow(some_digmit_image, cmap = matplotlib.cm.binary) cmap是圖譜

plt.pause(

0.0000001

)#設定顯示的時長

plt.show(

)

其中,mnist.train.next_batch() 函式包含乙個引數 batch_size,表示隨即從訓練集中抽取 batch_size 個樣本輸入神經網路,並將樣本的畫素值和標籤分別賦給 xs 和 ys。

在本例中,batch_size 設定為200,表示一次將200個樣本的畫素值和標籤分別賦值給 xs 和 ys ,故 xs 的形狀為(200,784),對應的ys的形狀為(200,10)。

import numpy as np

x,t = get_data(

)network = init_network

batch_size =

100accuracy_cnt =

0for i in

range(0

,len

(x), batch_size)

x_batch = x[i:i+batch_size]

y_batch = predict(network, x_batch)

p = np.argmax(y_batch, axis=1)

#獲取值最大的元素的索引 axis=1指定了在100*10的陣列中,沿第一維的方向找到值最大啊元素的索引

# 第0維對應第乙個維度 矩陣的第0維是列方向 第1維是行方向

accuracy_cnt += np.

sum(p == t[i:i+batch_size]

)#本例是按x[0:100] x[100:200]這樣提取

print

("accuracy"

+str

(float

(accuracy_cnt)

/len

(x))

)

深度學習入門

generative adversarial network gan 生成對抗網路 梯度消失 梯度擴散 gradient diffusion deep learning i.e.unsupervised feature learning 目的是讓機器自動學習良好的特徵,而免去人工選取過程 深度學習是...

深度學習入門

元胞自動機實質上是定義在乙個具有離散 有限狀態的元胞組成的元胞空間上,並按照一定的區域性規則,在離散的時間維度上演化的動力學系統。元胞又可稱為單元 細胞,是元胞自動機的最基本的組成部分。乙個標準的細胞自動機由元胞 元胞狀態 鄰域和狀態更新規則構成。用數學表示為 a l,d,s,n,f 其中l為元胞空...

深度學習入門

1 人工智慧 1956年,幾位科學家相聚在達特茅斯會議提出了人工智慧的概念。當時計算機剛剛出現不久,他們希望通過用計算機來構造複雜的,擁有與人類智慧型具有同樣本質的機器。然後幾十年,人工智慧一直在兩極分化,有些人認為這個是改變人們未來生活的乙個大的方向 但是有的人認為人工智慧是一種噱頭,或者是一種泡...