`keras.callbacks.Callback`
~~~
on_epoch_begin #在每輪開始時被調用
on_epoch_end #在每輪結束時被調用
on_batch_begin #在處理每個批量之前被調用
on_batch_end #在處理每個批量之后被調用
on_train_begin #在訓練開始時被調用
on_train_end #在訓練結束時被調用
~~~
調函數中,那么可以編寫你自己的回調函數。回調函數的實現方式是創建`keras.callbacks.Callback`類的子類。然后你可以實現下面這些方法(從名稱中即可看出這些方法的作用),它們分別在訓練過程中的不同時間點被調用。
~~~
on_epoch_begin ←------ 在每輪開始時被調用
on_epoch_end ←------ 在每輪結束時被調用
on_batch_begin ←------ 在處理每個批量之前被調用
on_batch_end ←------ 在處理每個批量之后被調用
on_train_begin ←------ 在訓練開始時被調用
on_train_end ←------ 在訓練結束時被調用
~~~
這些方法被調用時都有一個`logs`參數,這個參數是一個字典,里面包含前一個批量、前一個輪次或前一次訓練的信息,即訓練指標和驗證指標等。此外,回調函數還可以訪問下列屬性。
* `self.model`:調用回調函數的模型實例。
* `self.validation_data`:傳入`fit`作為驗證數據的值。
下面是一個自定義回調函數的簡單示例,它可以在每輪結束后將模型每層的激活保存到硬盤(格式為 Numpy 數組),這個激活是對驗證集的第一個樣本計算得到的。
~~~
import keras
import numpy as np
class ActivationLogger(keras.callbacks.Callback):
def set_model(self, model):
self.model = model #在訓練之前由父模型調用,告訴回調函數是哪個模型在調用它
layer_outputs = [layer.output for layer in model.layers]
self.activations_model = keras.models.Model(model.input,
layer_outputs) #模型實例,返回每層的激活
def on_epoch_end(self, epoch, logs=None):
if self.validation_data is None:
raise RuntimeError('Requires validation_data.')
validation_sample = self.validation_data[0][0:1] #獲取驗證數據的第一個輸入樣本
activations = self.activations_model.predict(validation_sample)
f = open('activations_at_epoch_' + str(epoch) + '.npz', 'w') #(以下3行)將數組保存到硬盤
np.savez(f, activations)
f.close()
~~~
- 基礎
- 張量tensor
- 整數序列(列表)=>張量
- 張量運算
- 張量運算的幾何解釋
- 層:深度學習的基礎組件
- 模型:層構成的網絡
- 訓練循環 (training loop)
- 數據類型與層類型、keras
- Keras
- Keras 開發
- Keras使用本地數據
- fit、predict、evaluate
- K 折 交叉驗證
- 二分類問題-基于梯度的優化-訓練
- relu運算
- Dens
- 損失函數與優化器:配置學習過程的關鍵
- 損失-二分類問題
- 優化器
- 過擬合 (overfit)
- 改進
- 小結
- 多分類問題
- 回歸問題
- 章節小結
- 機械學習
- 訓練集、驗證集和測試集
- 三種經典的評估方法
- 模型評估
- 如何準備輸入數據和目標?
- 過擬合與欠擬合
- 減小網絡大小
- 添加權重正則化
- 添加 dropout 正則化
- 通用工作流程
- 計算機視覺
- 卷積神經網絡
- 卷積運算
- 卷積的工作原理
- 訓練一個卷積神經網絡
- 使用預訓練的卷積神經網絡
- VGG16
- VGG16詳細結構
- 為什么不微調整個卷積基?
- 卷積神經網絡的可視化
- 中間輸出(中間激活)
- 過濾器
- 熱力圖
- 文本和序列
- 處理文本數據
- n-gram
- one-hot 編碼 (one-hot encoding)
- 標記嵌入 (token embedding)
- 利用 Embedding 層學習詞嵌入
- 使用預訓練的詞嵌入
- 循環神經網絡
- 循環神經網絡的高級用法
- 溫度預測問題
- code
- 用卷積神經網絡處理序列
- GRU 層
- LSTM層
- 多輸入模型
- 回調函數
- ModelCheckpoint 與 EarlyStopping
- ReduceLROnPlateau
- 自定義回調函數
- TensorBoard_TensorFlow 的可視化框架
- 高級架構模式
- 殘差連接
- 批標準化
- 批再標準化
- 深度可分離卷積
- 超參數優化
- 模型集成
- LSTM
- DeepDream
- 神經風格遷移
- 變分自編碼器
- 生成式對抗網絡
- 術語表