熱線電話:13121318867

登錄
首頁大數據時代如何快速簡單地入門Keras?
如何快速簡單地入門Keras?
2020-07-13
收藏

Keras 是基于 Theano 或 者TensorFlow 的一個深度學習框架,其設計源于Torch,編程語言用 Python ,是一個功能強大、內容抽象,高度模塊化的神經網絡庫,能夠支持 GPU 和 CPU。目前tensorflow已經將keras合并到了自己的主代碼中,我們可以直接tf.keras就能調用其中的工具庫了。

一、  Keras設計原則

a)用戶友好:Keras提供一致而簡潔的API, 大大降低了一般應用下用戶的工作量,并且,Keras可以提供清晰和具有實踐意義的bug反饋。

b)模塊性:模型可理解為一個層的序列或數據的運算圖,完全可配置的模塊可以用最少的代價自由組合在一起。具體而言,網絡層、損失函數、優化器、初始化策略、激活函數、正則化方法都是獨立的模塊,你可以使用它們來構建自己的模型。

c)易擴展性:只要仿照現有模塊編寫出新的類或者函數,就能夠非常簡單的添加新模塊。這種快捷性、便利性,能夠讓Keras在先進的研究工作方面有更突出的表現。

d)與Python協作:Keras并沒有單獨的模型配置文件類型,模型使用python代碼,這使得Keras更緊湊和更易debug,擴展更為便捷。

二、keras安裝

在進行keras安裝之前,需要需要確保TensorFlow,Theano,CNTK已經安裝完成。建議使用TensorFlow后端。如果計劃在GPU上運行keras,還可以選擇依賴項cuDNN。

1、打開dos窗口,在命令行中輸入:pip install keras

2、下載完成后,進入python環境,輸入import keras,輸出Using Tensorflow backend即表示安裝成功。

三、快速上手 Keras

模型,是一種組織網絡層的方式,它是Keras 的核心數據結構。Keras 中主要的模型有: Sequential 模型,Sequential 是一系列網絡層按順序構成的棧。

Sequential 模型如下:


from keras.models import Sequential

model = Sequential()


將一些網絡層通過 .add() 堆疊起來,就構成了一個模型:


from keras.layers import Dense, Activation

model.add(Dense(units=64. input_dim=100))

model.add(Activation("relu"))

model.add(Dense(units=10))

model.add(Activation("softmax"))


完成模型的搭建后,我們需要使用 .compile() 方法來編譯模型:


model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])


模型編譯時必須指明損失函數和優化器。Keras 的核心理念就是簡便快捷,操作容易。用戶可以根據自己的實際需要定制自己的模型、網絡層,甚至修改源代碼。比如,我們使用自定義的 SGD 優化器:


from keras.optimizers import SGD

model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01. momentum=0.9. nesterov=True))


模型編譯完成之后,我們在訓練數據上按 batch 進行一定次數的迭代來訓練網絡:


model.fit(x_train, y_train, epochs=5. batch_size=32)


如果我們采用手動方法,將一個個 batch 的數據送入網絡中訓練,需要使用:


model.train_on_batch(x_batch, y_batch)


隨后,我們可以用這一行代碼來評估模型,確定模型的指標是否能夠滿足我們的要求:


loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)


或者,我們可以使用此模型,預測新數據:


classes = model.predict(x_test, batch_size=128)


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢