Python深度學習讀書筆記-5.Keras 簡介

Keras 重要特性
  • 相同的代碼能夠在 CPU 或 GPU 上無縫切換運行。
  • 具備用戶友好的 API,便於快速開發深度學習模型的原型。
  • 內置支持卷積網絡(用於計算機視覺)、循環網絡(用於序列處理)以及兩者的任意組合。
  • 支持任意網絡架構:多輸入或多輸出模型、層共享、模型共享等。這也就是說, Keras可以構建任意深度學習模型,不管是生成式對抗網絡仍是神經圖靈機
 
 
Keras 有三個後端實現: 
TensorFlow 後端、Theano 後端和微軟認知工具包( CNTK, Microsoft cognitive toolkit)後端。將來 Keras 可能會擴
展到支持更多的深度學習引擎。
 
典型的 Keras 工做流程
(1) 定義訓練數據:輸入張量和目標張量。
(2) 定義層組成的網絡(或模型),將輸入映射到目標。
(3) 配置學習過程:選擇損失函數、優化器和須要監控的指標。
(4) 調用模型的 fit 方法在訓練數據上進行迭代。
 
定義模型有兩種方法:
一種是使用 Sequential 類(僅用於層的線性堆疊,這是目前最多見的網絡架構),另外一種是函數式 API( functional API,用於層組成的有向無環圖,讓你能夠構建任意形式的架構)。
 
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(32, activation='relu', input_shape=(784,)))
model.add(layers.Dense(10, activation='softmax’))
 
下面是用函數式 API 定義的相同模型。
input_tensor = layers.Input(shape=(784,))
x = layers.Dense(32, activation='relu')(input_tensor)
output_tensor = layers.Dense(10, activation='softmax')(x)
model = models.Model(inputs=input_tensor, outputs=output_tensor)
利用函數式 API,你能夠操縱模型處理的數據張量,並將層應用於這個張量,就好像這些層是函數同樣.
 
配置學習過程是在編譯這一步,你須要指定模型使用的優化器和損失函數,以及訓練過程
中想要監控的指標:
from keras import optimizers
model.compile(optimizer=optimizers.RMSprop(lr=0.001),  loss='mse',  metrics=['accuracy'])
 
學習過程就是經過 fit() 方法將輸入數據的 Numpy 數組(和對應的目標數據)傳入模型:
model.fit(input_tensor, target_tensor, batch_size=128, epochs=10)
相關文章
相關標籤/搜索