Keras简介
Keras 是一個Python深度學習框架,可以方便地定義和訓練幾乎所有類型地深度學習模型。Keras最開始是為研究人員開發的,其目的在于快速實驗
keras具有以下重要特性:
1.相同的代碼可以在CPU或GPU上無縫切換運行
2.具有用戶友好的API,便于快速開發深度學習模型的原型
3.內置支持卷積網絡(用于計算機視覺)、循環網絡(用于序列處理)以及二者的任意組合。
4.支持任意網絡架構:多輸入或多輸出模型、層共享、模型共享等。
1.1Keras\TensorFlow\Theano\CNTK
keras是一個模型級的庫,為開發深度學習模型提供了高層次的構建模塊。它依賴一個專門的、高度優化的張量庫來完成這些運算,這個張量庫就是Keras的后端引擎。Keras有三個后端實現:TensorFlow后端、Theano后端和微軟認知工具包(CNTK)。這三個不同的后端引擎都可以無縫嵌入到Keras中。
通過TensorFlow,Keras可以在CPU和GPU上無縫運行,在CPU上運行時,TensorFlow本身封裝了一個低層次的張量運算庫,叫做Eigen;在GPU上運行時,TensorFlow封裝了一個高度優化的深度學習運算庫,叫做NVIDIA CUDA深度卷積神經網絡(cuDNN)。
1.2使用Keras開發:概述
典型的Keras工作流程:
(1)定義訓練數據:輸入張量和目標張量
(2)定義層組成的網絡,將輸入映射到目標
(3)配置學習過程:選擇損失函數、優化器和需要監控的指標
(4)調用模型的fit方法在訓練數據上進行迭代
?
定義模型有兩種方法:
1.一種是Sequential類定義的兩層模型(僅用于層的線性堆疊)
2.下面是函數式API定義的相同模型
?
?
配置學習過程就是在編譯這一步,你需要指定模型使用的優化器和損失函數,以及訓練過程中想要監控的指標。
最后,學習過程就是通過fit()方法將輸入數據的Numpy數組傳入模型。
?
本文選自《python深度學習》
總結
- 上一篇: nutz ajax ie8,版本升级
- 下一篇: Windows 终端命令大全