日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习(七)——tf.keras搭建神经网络固定模式

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(七)——tf.keras搭建神经网络固定模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、總綱(一般按照下面6步搭建)

  • import——導入相關模塊

  • train,test——指定訓練集與測試集

  • model = tf.keras.models.Sequential——在Sequential搭建神經網絡,描述每層網絡

  • model.compile——配置訓練方法,優化器,損失函數,評測指標

  • model.fit——執行訓練過程,告知訓練集與測試集,設置batch,迭達多少次數據集

  • model.summary——用summary打印出網絡的結構和參數統計

二、六步法詳解

1、model = tf.keras.models.Squential([網絡結構])#描述各層網絡

網絡結構舉例:

拉直層:tf.keras.layers.Flatten() ##不含計算,將輸入特征拉直變成一維數組

全連接層:tf.keras.layers.Dense(神經元個數,activation="激活函數", kernel_regularizer=哪種正則化)

activation(激活函數)可選:relu、softmax、sigmoid、tanh

kernel_regularizer(正則化)可選:tf.keras.regularizers.l1()、tf.keras.regularizers.l2()

卷積層:tf.keras.layers.Conv2D(filters =?卷積核個數,?kernel_size =?卷積核尺寸,strides =?卷積步長,?padding = "valid" or "same")

LSTM層:tf.keras.layers.LSTM()

2、model.compile(optimizer =?優化器, loss =?損失函數,?metrics = ["準確率"])

Optimizer可選:(下面的后者可以使用超參數,初學建議直接用前面的)
'sgd' or tf.keras.optimizers.SGD(lr=學習率, momentum=動量參數)
'adagrad' or tf.keras.optimizers.Adagrad(lr=學習率)
'adadelta' or tf.keras.optimizers.Adadelta(lr=學習率, momentum=動量參數)
'adam' or tf.keras.optimizers.Adam(lr=學習率, beta_1=0.9, beta_2=0.99)

loss可選:(均方誤差與交叉熵)

'mse' or tf.keras.losses.MeanSquaresError()
'sparse_categorical_crossentropy' or
tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)

Metrics可選:(告知網絡評測指標)
'accuracy':y_和y都是數值
'categorical_accuracy':y_和y都是獨熱碼(概率分布)
'sparse_categorical_accuracy':y_是數值,y是獨熱碼(概率分布)

3、model.fit(訓練集的輸入特征,訓練集的標簽,

batch_size=,epochs=,

validation_data=(測試集輸入特征,測試集的標簽),

validation_split=從訓練集劃分多少比例給測試集,

validation_freq=多少次epoch測試一次)

4、model.summary()打印出網絡結構和參數統計

三、案例(鳶尾花分類用六步法實現)

import tensorflow as tf import tensorflow.python.keras as keras import numpy as np; from sklearn import datasets ##加載訓練數據集x_train = datasets.load_iris().data y_train = datasets.load_iris().targetnp.random.seed(116) np.random.shuffle(x_train) np.random.seed(116) np.random.shuffle(y_train) tf.random.set_seed(116)###設置全連接層,設置激活函數,設置正則化函數model = keras.models.Sequential([keras.layers.Dense(3, activation='softmax', kernel_regularizer=keras.regularizers.l2()) ]) ###設置學習率與優化器,設置交叉熵loss函數,設置評測標準 model.compile(optimizer='SGD',loss=keras.losses.SparseCategoricalCrossentropy(from_logits=False),metrics=['sparse_categorical_accuracy']) ###設置訓練集,batch_size的數值盡量設為2的n次方 validation_split是劃分多少作為測試,validation_freq是每20次評測一下 model.fit(x_train, y_train, batch_size=32, epochs=500,validation_split=0.2,validation_freq=20) model.summary()

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的机器学习(七)——tf.keras搭建神经网络固定模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。