讀書筆記(四):深度學習基於Keras的Python實踐
多分類例項:鳶尾花分類
針對鳶尾花分類問題建立神經網路的函式功能,建立一個簡單的全連線網路,包括一個輸入層(4個輸入神經元)、兩個隱藏層和一個輸出層,採用adam作為優化器,adam是一種用來替換隨機梯度下降的優化演算法, adam的調參相對簡單,預設引數可以處理大部分問題,並且使用在Keras中稱為分類交叉熵的對數損失函式
- 評估模型: 確定模型的效能是否達到預定目標,黃金標準是k折交叉驗證,首先定義模型評估程式,這裡將定義為10,在分割資料之前對資料進行隨機亂序排列,然後就可以使用10折交叉驗證來評估已經定義完成的神經網路模型,並列印評估結果
迴歸問題例項:波士頓房價預測
迴歸問題是用來預測趨勢的一類問題,如價格預測、乘客人數預測等等,波士頓房價資料集包含14個特徵和506條資料
- 這些特徵屬性的描述,可以發現輸入資料的度量單位不統一,需要對資料進行尺度調整,以便於提高模型的準確度,例項中使用Scikit-Learn中提供的資料集進行模型的訓練與評估
構建基準模型:首先建立一個簡單的神經網路模型,並將其作為模型改進的基準,每次模型的改進,都是以提高基準模型的效能為基礎的
#首先建立一個簡單的神經網路模型,並將其作為模型改進的基準,每次模型的改進,都是以提高基準模型的效能為基礎的,匯入所有需要的函式和物件開始
from sklearn import datasets
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV
#匯入資料後應設定隨機數種子,以便於重複構建模型,並得到相同的結果
dataset = datasets.load_boston()
x = dataset.data
y = dataset.target
#設定隨機數種子
seed = 7
np.random.seed(seed)
#建立Keras模型後,使用包裝類來封裝模型,並通過Scikit-Learn評估模型,因為Scikit-Learn具有完善的評估模型的方法,可以使用少量的程式碼實現資料準備和對模型進行評估,Keras包裝類需要一個函式作為引數,所以必須定義並使用這個函式建立神經網路模型
#編譯模型的時候,採用Adam優化器,均方誤差MSE作為損失函式,同時採用相同的均方誤差來評估模型的效能,值越小代表模型效能越好,通常均方誤差為14,期待調優到10
#構建模型函式
def create_model(units_list=[13],optimizer='adam',init='normal'):
#構建模型
model = Sequential()
#構建第一個隱藏層和輸入層
units = units_list[0]
model.add(Dense(units=units,activation='relu',input_dim=13,kernel_initializer=init))
#構建更多的隱藏層
for units in units_list[1:]:
model.add(Dense(units = units,activation='relu',kernel_initializer=init))
model.add(Dense(units=1,kernel_initializer=init))
#編譯模型
model.compile(loss = 'mean_squared_error',optimizer=optimizer)
return model
相關文章
- 深度學習keras筆記深度學習Keras筆記
- Java 併發程式設計實踐 讀書筆記四Java程式設計筆記
- 《深度學習案例精粹:基於TensorFlow與Keras》案例集用於深度學習訓練深度學習Keras
- 學習筆記專案實踐(python)筆記Python
- 基於深度學習的醫學影像配準學習筆記2深度學習筆記
- 基於Keras和Gunicorn+Flask部署深度學習模型KerasFlask深度學習模型
- 《Redis深度歷險:核心原理和應用實踐》讀書筆記Redis筆記
- 基於CPU的深度學習推理部署優化實踐深度學習優化
- 李巨集毅深度學習 筆記(四)深度學習筆記
- Python深度學習(使用 Keras 回撥函式和 TensorBoard 來檢查並監控深度學習模型)--學習筆記(十六)Python深度學習Keras函式ORB模型筆記
- 基於深度學習的影像分割在高德的實踐深度學習
- 基於python的大資料分析實戰學習筆記-AnacondaPython大資料筆記
- 基於Theano的深度學習框架keras及配合SVM訓練模型深度學習框架Keras模型
- 《Kafka入門與實踐》讀書筆記Kafka筆記
- 基於pytorch的深度學習實戰PyTorch深度學習
- 基於TensorFlow的深度學習實戰深度學習
- ThreadLoop實踐學習筆記threadOOP筆記
- Python基礎學習筆記Python筆記
- 基於python的大資料分析實戰學習筆記-pandas之DataFramePython大資料筆記
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- 基於深度學習的圖書管理推薦系統(附python程式碼)深度學習Python
- 深度學習筆記(5)Broadcasting in Python 廣播深度學習筆記ASTPython
- 【讀書1】【2017】MATLAB與深度學習——深度學習(2)Matlab深度學習
- python基礎學習筆記(一)Python筆記
- 基於 KubeVela 的機器學習實踐機器學習
- 讀書筆記-增量學習-Large Scale Incremental Learning筆記REM
- Java IO學習筆記四:Socket基礎Java筆記
- Python深度學習(處理文字資料)--學習筆記(十二)Python深度學習筆記
- 深度學習 筆記一深度學習筆記
- 基於python的大資料分析實戰學習筆記-pandas(資料分析包)Python大資料筆記
- 《Python 簡明教程》讀書筆記系列四 —— 資料結構Python筆記資料結構
- 《Golang學習筆記》error最佳實踐Golang筆記Error
- 基於docker 初學 MongoDb 學習筆記DockerMongoDB筆記
- Python機器學習筆記:使用Keras進行迴歸預測Python機器學習筆記Keras
- 《深度探索C++物件模型》讀書筆記C++物件模型筆記
- 深度學習——loss函式的學習筆記深度學習函式筆記
- 深度學習框架Pytorch學習筆記深度學習框架PyTorch筆記
- python基礎學習筆記(紙質)Python筆記