keras學習筆記1 Keras模組概述

2021-08-28 23:39:29 字數 2882 閱讀 7726

keras主要包括14個模組,本文主要對models、layers、initializations、activations、objectives、optimizers、preprocessing、metrics共計8個模組分別展開介紹,並通過乙個簡單的bp神經網路說明各個模組的作用。

1. model

包:keras.models

這是keras中最主要的乙個模組,用於對各個元件進行組裝

eg:

from keras.models import sequential

model=sequential() #初始化模型

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

2. layers

包:keras.layers

該模組主要用於生成神經網路層,包含多種型別,如core layers、convolutional layers等

eg:

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等

詳細說明:

eg:

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、relu、 softplus以及leakyrelu等比較新的啟用函式

詳細說明:

eg:

model.add(dense(input_dim=3,output_dim=5,activation='sigmoid')) 加入帶啟用函式(sigmoid)的隱含層
equal to:

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

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

詳細說明:

eg:

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

包:keras.optimizers

該模組主要負責設定神經網路的優化方法,如sgd。

注:優化函式的設定是在模型編譯階段

詳細說明:

eg:

model.compile(loss='binary_crossentropy', optimizer='sgd') #optimizer是指優化方法
7. preprocessing

包:keras.preprocessing.(image\sequence\text)

資料預處理模組,不過本人目前尚未用過

8. metrics

包:keras.metrics

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

eg:

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

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

9. bp 神經網路的簡單實現

from keras.models import sequential #匯入模型

from keras.layers import dense #匯入bp層

train_x,train_y #訓練集

test_x,text_y #測試集

model=sequential() #初始化模型

model.add(dense(input_dim=3,output_dim=3,activation='sigmoid',init='uniform'))) #新增乙個隱含層,注:只是第乙個隱含層需指定input_dim

model.add(dense(1,activation='sigmoid')) #新增輸出層

model.compile(loss='binary_crossentropy', optimizer='sgd') # 編譯,指定目標函式與優化方法

model.fit(train_x,train_y ) # 模型訓練

model.evaluate(test_x,text_y ) #模型測試

參考

1. #keras幫助文件

2. #深度學習框架keras簡介

1 Keras環境的安裝

本人電腦使用的是windows10系統,提前安裝了anaconda 程式可能會出現一些警告資訊,但是不會報錯,且能看到執行結果 import tensorflow as tf message tf.constant hello tensorflow with tf.session as sess p...

Keras學習筆記

手冊 keras中文文件 1.張量 一階張量是向量,二階張量是矩陣。2.batch batch gradient descent,遍歷全部資料集算一次損失函式,然後算函式對各個引數的梯度,更新梯度。太慢。stochastic gradient descent,每看乙個資料就算一下損失函式,然後求梯度...

keras入門筆記(1)

tensorflow 原始碼庫 本文參考了部落格有不足之處希望大家指出。tensorflow和keras的關係 tensorflow和keras都是深度學習框架,tensorflow比較靈活。keras其實就是tensorflow的介面 keras作為前端,tensorflow作為後端 它也很靈活,...