1. 程式人生 > >keras 簡介、安裝、相容的後端(backend)

keras 簡介、安裝、相容的後端(backend)

1.為什麼我要開始學keras:

tensorflow太難了,從底層API到高層API,都需要花費很多時間來學習,花費了幾個月學寫程式碼還是不順,很多模型改動起來非常麻煩。如果你跟我一樣,沒有程式設計基礎,tensorflow學著吃力,早點換個框架,別跟自己過不去。這就是教訓。

2.keras優勢:

 2.1 Keras在設計時以人為本,強調快速建模,使用者能快速地將所需模型的結構對映到Keras程式碼中,儘可能減少編寫程式碼的工作量,特別是對於成熟的模型型別,從而加快開發速度。支援現有的常見結構,比如卷積神經網路、時間遞迴神經網路等,足以應對大量的常見應用場景。

2.2高度模組化,使用者幾乎能夠任意組合各個模組來構造所需的模型。在Keras中,任何神經網路模型都可以被描述為一個圖模型或者序列模型,其中的部件被劃分為以下模組:神經網路層、損失函式、啟用函式、初始化方法、正則化方法、優化引擎。這些模組可以以任意合理地方式放入圖模型或者序列模型中來構造所需的模型,使用者並不需要知道每個模組後面的細節。這種方式相比其他軟體需要使用者編寫大量程式碼或者用特定語言來描述神經網路結構的方法效率高很多,也不容易出錯。

2.3基於Python,使用者也可以使用Python程式碼來描述模型,因此易用性、可擴充套件性都非常高。使用者可以非常容易地編寫自己的定製模組,或者對已有模組進行修改或者擴充套件,因此可以非常方便地開發和應用新的模型與方法,加快迭代速度。

2.4能在CPU和GPU之間無縫切換,適用於不同的應用環境。當然,我們強烈推薦GPU環境。(非原創,書上擷取的)

總之就是高度整合,構建一個模型就是幾句話的事情,完全不用擔心敲不來程式碼。比如,要想做個遷移學習,tensorflow裡面需要自寫很長一段程式碼來改變遷移模型的最後一個softmax,而在keras裡,炒雞簡單,一句話得事。你說用哪個好呢。

3.安裝

建議新建一個環境安裝,不要什麼專案都用一個環境,這個專案裡需要用什麼,裝什麼。還可以提高執行速度,看起來也不凌亂。pip install keras就行了。

4.相容的後端(backend)

我們來介紹 Keras 的兩個 Backend,也就是Keras基於什麼東西來做運算。Keras 可以基於兩個Backend,一個是 Theano,一個是 Tensorflow。如果我們選擇Theano作為Keras的Backend, 那麼Keras就用 Theano 在底層搭建你需要的神經網路;同樣,如果選擇 Tensorflow 的話呢,Keras 就使用 Tensorflow 在底層搭建神經網路。

目前 Tensorflow 支援 Mac 和 Linux 系統,而 Theano 不但支援包括 Mac 和 Linux,還支援 Windows 系統, 所以我們就可以選擇自己可以用的 Backend 就可以。

檢視當前的keras是基於什麼後端:import keras的時候就會給出結果。


可以看到我的是基於tensorflow的,所以這個環境下必須要安裝tensorflow包,才可以用