免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
輕量級深度學習框架Keras簡介

徐海蛟教學

Keras是基于Theano的一個深度學習框架,它的設計參考了Torch,用Python語言編寫,是一個高度模塊化的神經網絡庫,支持GPU和CPU。使用文檔在這:http://keras.io/,中文文檔在這:http://keras-cn.readthedocs.io/en/latest/,這個框架是2015年流行起來的,使用中遇到的困惑或者問題可以提交到github:https://github.com/fchollet/keras。

Keras主要包括14個模塊包,可參見文檔https://keras.io/layers/,下面主要對Models、Layers、Initializations、Activations、Objectives、Optimizers、Preprocessing、metrics八個模塊包展開介紹。

1. Models包:keras.models

這是Keras中最主要的一個模塊,用于對各個組件進行組裝。

詳細說明:http://keras.io/models/

from keras.models import Sequential

model = Sequential()  # 初始化模型

model.add(...)  # 可使用add方法組裝組件

2. Layers包:keras.layers

該模塊主要用于生成神經網絡層,包含多種類型,如Core layers、Convolutionallayers、recurrent layers、advanced_activations layers、normalizationlayers、embeddings layers等。

其中Corelayers里面包含了flatten(CNN的全連接層之前需要把二維特征圖flatten成為一維的)、reshape(CNN輸入時將一維的向量弄成二維的)、dense(隱藏層)。

Convolutionallayers層包含Theano的Convolution2D的封裝等。

詳細說明:http://keras.io/layers/

from keras.layers import Dense  #Dense表示BP層

model.add(Dense(input_dim=3,output_dim=5)) # 加入隱含層

3. Initializations包:keras.initializations

該模塊主要負責對模型參數(權重)進行初始化,初始化方法包括:uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等。

詳細說明:http://keras.io/initializations/

model.add(Dense(input_dim=3,output_dim=5,init='uniform'))#加入帶初始化(uniform)的隱含層

4.Activations包:keras.activations、keras.layers.advanced_activations(新激活函數)

該模塊主要負責為神經層附加激活函數,如linear、sigmoid、hard_sigmoid、tanh、softplus、softmax、relu以及LeakyReLU、PReLU等比較新的激活函數。

詳細說明:http://keras.io/activations/

model.add(Dense(input_dim=3, output_dim=5,activation='sigmoid'))  #加入帶激活函數(sigmoid)的隱含層

等價于:

model.add(Dense(input_dim=3, output_dim=5))

model.add(Activation('sigmoid'))

5. Objectives包:keras.objectives

該模塊主要負責為神經網絡附加損失函數,即目標函數。如mean_squared_error,mean_absolute_error,squared_hinge,hinge,binary_crossentropy,categorical_crossentropy等,其中binary_crossentropy,categorical_crossentropy是指logloss。

注:目標函數的設定是在模型編譯階段。

詳細說明:http://keras.io/objectives/

model.compile(loss='binary_crossentropy', optimizer='sgd')#loss是指目標函數

6. Optimizers包:keras.optimizers

該模塊主要負責設定神經網絡的優(yōu)化方法,如最基本的隨機梯度下降SGD,另外還有Adagrad、Adadelta、RMSprop、Adam,一些新的方法以后也會被不斷添加進來。

詳細說明:http://keras.io/optimizers/

keras.optimizers.SGD(lr=0.01, momentum=0.9, decay=0.9,nesterov=False)

上面的代碼是SGD的使用方法,lr表示學習速率,momentum表示動量項,decay是學習速率的衰減系數(每個epoch衰減一次),Nesterov的值是False或者True,表示使不使用Nesterovmomentum。

model = Sequential()

model.add(Dense(64, init='uniform',input_dim=10))

model.add(Activation('tanh'))

model.add(Activation('softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9,nesterov=True)

model.compile(loss='mean_squared_error', optimizer=sgd) #指優(yōu)化方法sgd

model.compile(loss='binary_crossentropy',optimizer='sgd')

7. Preprocessing包:keras.preprocessing

數據預處理模塊,包括序列數據的處理、文本數據的處理和圖像數據的處理等。對于圖像數據的處理,keras提供了ImageDataGenerator函數,實現(xiàn)數據集擴增,對圖像做一些彈性變換,比如水平翻轉,垂直翻轉,旋轉等。

8. metrics包:keras.metrics

與sklearn中metrics包基本相同,主要包含一些如binary_accuracy、mae、mse等的評價方法。

predict = model.predict_classes(test_x)      #輸出預測結果

keras.metrics.binary_accuracy(test_y, predict) #計算預測精度


本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
常用層Core
實戰(zhàn) 遷移學習 VGG19、ResNet50、InceptionV3 實踐 貓狗大戰(zhàn) 問題
The Neural Network Zoo
教你在R中使用Keras和TensorFlow構建深度學習模型 | 機器之心
Guide to the Sequential model
深度學習在金融領域的十大應用算法【附Python代碼】
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服