keras demo - fashion_mnist


本文是TF給出的第一個關於keras的demo,以此來引出keras的基本用法和幾個關鍵方法,也體會到了keras使用的方便。

 

一、數據集

demo中所用的數據集是fashion_mnist。是關於穿着物品的圖片集。地址:https://github.com/zalandoresearch/fashion-mnist

數據集的特征:

  • 訓練數據60000個
  • 測試數據10000個
  • 每個圖片是28 * 28 灰度圖
  • 10個分類

keras的數據集下載簡單幾句話就可以搞定。

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

datasets里包含很多數據集,都可以通過load_data直接下載(雖然很多下載不了,可能是被牆了。可以直接下載數據集,然后保存在根目錄的.keras目錄的datasets下。macos下是在~/.keras,windows是在?)。

通過load_data下載的數據,直接將訓練和測試數據集分開返回,而且也將數據和分類標簽分開返回。

 

二、數據處理

歸一化。

train_images = train_images / 255.0
test_images = test_images / 255.0

 

三、建模

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])

這個demo里,采用序列模式。

  1. 第一層是Flatten,將28 * 28的像素值,壓縮成一行 (784, )
  2. 第二層是Dense,全連接層。激活函數使用relu
  3. 第三層還是Dense,因為是多分類問題,激活函數使用softmax

在keras里,layers里包含所有的層類型。其中還包括,

  • 卷積層,Conv2D
  • Dropout層,Dropout
  • MaxPool1D, 最大池化層
  • 等等

具體可參考:https://tensorflow.google.cn/api_docs/python/tf/keras/layers

 

四、編譯

 建模后就是編譯。編譯的參數主要是:

  • optimizer,優化方法,這里用Adam
  • loss,損失函數,這里用稀疏類別交叉熵(多類的對數損失),sparse是指稀疏矩陣
  • metrics,評估模型在訓練和測試時的性能的指標
model.compile(optimizer=tf.train.AdamOptimizer(),
             loss = 'sparse_categorical_crossentropy',
             metrics=['accuracy'])

 

 五、擬合

 擬合是訓練參數,擬合訓練數據的過程。主要參數:

  • 訓練數據
  • 訓練標簽
  • 訓練次數
model.fit(train_images, train_labels, epochs=5)

 

六、評估

 把擬合好的模型應用在測試數據上,得到在測試集上的損失值和准確率。

通過觀察和繪制損失值和准確率的統計圖,分析模型的性能,是否滿足需求。

如果滿足需求,再進行最后的預測過程。

test_loss, test_acc = model.evaluate(test_images, test_labels)

 

七、預測

predictions = model.predict(test_images)
predict可以得到所有類型對應的概率。

Reference:

1、https://tensorflow.google.cn/tutorials/keras/basic_classification

2、https://keras-cn.readthedocs.io/en/latest/、keras中文文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM