tensorflow中model.compile()用法
tensorflow中model.compile()用法
model.compile()方法用于在配置訓(xùn)練方法時(shí),告知訓(xùn)練時(shí)用的優(yōu)化器、損失函數(shù)和準(zhǔn)確率評(píng)測(cè)標(biāo)準(zhǔn)
?model.compile(optimizer =?優(yōu)化器,
? ? ? ? ? ? ? ? ? ? ? ? loss =?損失函數(shù),
? ? ? ? ? ? ? ? ? ? ? ? metrics = ["準(zhǔn)確率”])
其中:
optimizer可以是字符串形式給出的優(yōu)化器名字,也可以是函數(shù)形式,使用函數(shù)形式可以設(shè)置學(xué)習(xí)率、動(dòng)量和超參數(shù)
例如:“sgd”? ?或者? ?tf.optimizers.SGD(lr =?學(xué)習(xí)率,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?decay =?學(xué)習(xí)率衰減率,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? momentum =?動(dòng)量參數(shù))
? ? ? ? ? ?“adagrad"? 或者? tf.keras.optimizers.Adagrad(lr =?學(xué)習(xí)率,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?decay =?學(xué)習(xí)率衰減率)
? ? ? ? ? ? ”adadelta"? 或者? tf.keras.optimizers.Adadelta(lr =?學(xué)習(xí)率,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?decay =?學(xué)習(xí)率衰減率)
? ? ? ? ? ? ?“adam"? 或者? tf.keras.optimizers.Adam(lr =?學(xué)習(xí)率,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? decay =?學(xué)習(xí)率衰減率)
?
loss可以是字符串形式給出的損失函數(shù)的名字,也可以是函數(shù)形式
例如:”mse"?或者 tf.keras.losses.MeanSquaredError()
? ? ? ? ? ?"sparse_categorical_crossentropy"? 或者? tf.keras.losses.SparseCatagoricalCrossentropy(from_logits = False)
? ? ? ? ? ? ?損失函數(shù)經(jīng)常需要使用softmax函數(shù)來(lái)將輸出轉(zhuǎn)化為概率分布的形式,在這里from_logits代表是否將輸出轉(zhuǎn)為概率分布的形式,為False時(shí)表示轉(zhuǎn)換為概率分布,為T(mén)rue時(shí)表示不轉(zhuǎn)換,直接輸出
?
Metrics標(biāo)注網(wǎng)絡(luò)評(píng)價(jià)指標(biāo)
例如:
? ? ? ? "accuracy" : y_?和 y?都是數(shù)值,如y_ = [1] y = [1]? #y_為真實(shí)值,y為預(yù)測(cè)值
? ? ? ? “sparse_accuracy":y_和y都是以獨(dú)熱碼?和概率分布表示,如y_ = [0, 1, 0], y = [0.256, 0.695, 0.048]
? ? ? ? "sparse_categorical_accuracy" :y_是以數(shù)值形式給出,y是以?獨(dú)熱碼給出,如y_ = [1], y = [0.256?0.695, 0.048]
? ? ? ? ?
?
示例代碼:
#第一步,import import tensorflow as tf #導(dǎo)入模塊 from sklearn import datasets #從sklearn中導(dǎo)入數(shù)據(jù)集 import numpy as np #導(dǎo)入科學(xué)計(jì)算模塊 import keras#第二步,train, test x_train = datasets.load_iris().data #導(dǎo)入iris數(shù)據(jù)集的輸入y_train = datasets.load_iris().target #導(dǎo)入iris數(shù)據(jù)集的標(biāo)簽np.random.seed(120) #設(shè)置隨機(jī)種子,讓每次結(jié)果都一樣,方便對(duì)照np.random.shuffle(x_train) #使用shuffle()方法,讓輸入x_train亂序np.random.seed(120) #設(shè)置隨機(jī)種子,讓每次結(jié)果都一樣,方便對(duì)照np.random.shuffle(y_train) #使用shuffle()方法,讓輸入y_train亂序tf.random.set_seed(120) #讓tensorflow中的種子數(shù)設(shè)置為120#第三步,models.Sequential() model = tf.keras.models.Sequential([ #使用models.Sequential()來(lái)搭建神經(jīng)網(wǎng)絡(luò)tf.keras.layers.Dense(3, activation = "softmax", kernel_regularizer = tf.keras.regularizers.l2()) #全連接層,三個(gè)神經(jīng)元,激活函數(shù)為softmax,使用l2正則化 ])#第四步,model.compile() model.compile( #使用model.compile()方法來(lái)配置訓(xùn)練方法optimizer = tf.keras.optimizers.SGD(lr = 0.1), #使用SGD優(yōu)化器,學(xué)習(xí)率為0.1loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits = False), #配置損失函數(shù)metrics = ['sparse_categorical_accuracy'] #標(biāo)注網(wǎng)絡(luò)評(píng)價(jià)指標(biāo) )#第五步,model.fit() model.fit( #使用model.fit()方法來(lái)執(zhí)行訓(xùn)練過(guò)程,x_train, y_train, #告知訓(xùn)練集的輸入以及標(biāo)簽,batch_size = 32, #每一批batch的大小為32,epochs = 500, #迭代次數(shù)epochs為500validation_split = 0.2, #從測(cè)試集中劃分80%給訓(xùn)練集validation_freq = 20 #測(cè)試的間隔次數(shù)為20 )#第六步,model.summary() model.summary() #打印神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),統(tǒng)計(jì)參數(shù)數(shù)目?
?
總結(jié)
以上是生活随笔為你收集整理的tensorflow中model.compile()用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机音乐谱安娜的橱窗,《安娜的橱窗,钢
- 下一篇: unity 植物大战僵尸怎么做