亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keras回調函數如何使用

發布時間:2023-03-13 14:12:49 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

這篇文章主要介紹了keras回調函數如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇keras回調函數如何使用文章都會有所收獲,下面我們一起來看看吧。

回調函數

  • 回調函數是一個對象(實現了特定方法的類實例),它在調用fit()時被傳入模型,并在訓練過程中的不同時間點被模型調用

  • 可以訪問關于模型狀態與模型性能的所有可用數據

  • 模型檢查點(model checkpointing):在訓練過程中的不同時間點保存模型的當前狀態。

  • 提前終止(early stopping):如果驗證損失不再改善,則中斷訓練(當然,同時保存在訓練過程中的最佳模型)。

  • 在訓練過程中動態調節某些參數值:比如調節優化器的學習率。

  • 在訓練過程中記錄訓練指標和驗證指標,或者將模型學到的表示可視化(這些表示在不斷更新):fit()進度條實際上就是一個回調函數。

fit()方法中使用callbacks參數

# 這里有兩個callback函數:早停和模型檢查點
callbacks_list=[
    keras.callbacks.EarlyStopping(
        monitor="val_accuracy",#監控指標
        patience=2 #兩輪內不再改善中斷訓練
    ),
    keras.callbacks.ModelCheckpoint(
        filepath="checkpoint_path",
        monitor="val_loss",
        save_best_only=True
    )
]
#模型獲取
model=get_minist_model()
model.compile(optimizer="rmsprop",
             loss="sparse_categorical_crossentropy",
             metrics=["accuracy"])

model.fit(train_images,train_labels,
         epochs=10,callbacks=callbacks_list, #該參數使用回調函數
         validation_data=(val_images,val_labels))

test_metrics=model.evaluate(test_images,test_labels)#計算模型在新數據上的損失和指標
predictions=model.predict(test_images)#計算模型在新數據上的分類概率

keras回調函數如何使用

模型的保存和加載

#也可以在訓練完成后手動保存模型,只需調用model.save('my_checkpoint_path')。
#重新加載模型
model_new=keras.models.load_model("checkpoint_path.keras")

通過對Callback類子類化來創建自定義回調函數

on_epoch_begin(epoch, logs) ←----在每輪開始時被調用
on_epoch_end(epoch, logs) ←----在每輪結束時被調用
on_batch_begin(batch, logs) ←----在處理每個批量之前被調用
on_batch_end(batch, logs) ←----在處理每個批量之后被調用
on_train_begin(logs) ←----在訓練開始時被調用
on_train_end(logs ←----在訓練結束時被調用

from matplotlib import pyplot as plt
# 實現記錄每一輪中每個batch訓練后的損失,并為每個epoch繪制一個圖
class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs):
        self.per_batch_losses = []

    def on_batch_end(self, batch, logs):
        self.per_batch_losses.append(logs.get("loss"))

    def on_epoch_end(self, epoch, logs):
        plt.clf()
        plt.plot(range(len(self.per_batch_losses)), self.per_batch_losses,
                 label="Training loss for each batch")
        plt.xlabel(f"Batch (epoch {epoch})")
        plt.ylabel("Loss")
        plt.legend()
        plt.savefig(f"plot_at_epoch_{epoch}")
        self.per_batch_losses = [] #清空,方便下一輪的技術
model = get_mnist_model()
model.compile(optimizer="rmsprop",
              loss="sparse_categorical_crossentropy",
              metrics=["accuracy"])
model.fit(train_images, train_labels,
          epochs=10,
          callbacks=[LossHistory()],
          validation_data=(val_images, val_labels))

keras回調函數如何使用

【其他】模型的定義 和 數據加載

def get_minist_model():
    inputs=keras.Input(shape=(28*28,))
    features=layers.Dense(512,activation="relu")(inputs)
    features=layers.Dropout(0.5)(features)
    outputs=layers.Dense(10,activation="softmax")(features)
    model=keras.Model(inputs,outputs)
    return model
    
#datset
from tensorflow.keras.datasets import mnist
(train_images,train_labels),(test_images,test_labels)=mnist.load_data()
train_images=train_images.reshape((60000,28*28)).astype("float32")/255
test_images=test_images.reshape((10000,28*28)).astype("float32")/255
train_images,val_images=train_images[10000:],train_images[:10000]
train_labels,val_labels=train_labels[10000:],train_labels[:10000]

關于“keras回調函數如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“keras回調函數如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝坻区| 万源市| 天等县| 蒙山县| 汾阳市| 文化| 天气| 论坛| 宁陵县| 吴川市| 彭州市| 门头沟区| 阿克苏市| 囊谦县| 桂东县| 洛阳市| 远安县| 永胜县| 荔浦县| 潞城市| 五河县| 大邑县| 阳山县| 洛扎县| 沙坪坝区| 长沙市| 北流市| 淄博市| 许昌县| 岳阳市| 吉林市| 榆树市| 剑川县| 光泽县| 故城县| 井陉县| 遂溪县| 乌拉特前旗| 安陆市| 北辰区| 亳州市|