Model 類模型方法
compile
compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
用於配置訓練模型。
參數
異常
- optimizer: 字符串(優化器名)或者優化器實例。 詳見 optimizers。
- loss: 字符串(目標函數名)或目標函數。 詳見 losses。 如果模型具有多個輸出,則可以通過傳遞損失函數的字典或列表,在每個輸出上使用不同的損失。 模型將最小化的損失值將是所有單個損失的總和。
- metrics: 在訓練和測試期間的模型評估標準。 通常你會使用
metrics = ['accuracy']
。 要爲多輸出模型的不同輸出指定不同的評估標準, 還可以傳遞一個字典,如metrics = {'output_a':'accuracy'}
。 - loss_weights: 可選的指定標量係數(Python 浮點數)的列表或字典, 用以衡量損失函數對不同的模型輸出的貢獻。 模型將最小化的誤差值是由
loss_weights
係數加權的加權總和誤差。 如果是列表,那麼它應該是與模型輸出相對應的 1:1 映射。 如果是張量,那麼應該把輸出的名稱(字符串)映到標量係數。 - sample_weight_mode: 如果你需要執行按時間步採樣權重(2D 權重),請將其設置爲
temporal
。 默認爲None
,爲採樣權重(1D)。 如果模型有多個輸出,則可以通過傳遞 mode 的字典或列表,以在每個輸出上使用不同的sample_weight_mode
。 - weighted_metrics: 在訓練和測試期間,由 sample_weight 或 class_weight 評估和加權的度量標準列表。
- target_tensors: 默認情況下,Keras 將爲模型的目標創建一個佔位符,在訓練過程中將使用目標數據。 相反,如果你想使用自己的目標張量(反過來說,Keras 在訓練期間不會載入這些目標張量的外部 Numpy 數據), 您可以通過
target_tensors
參數指定它們。 它可以是單個張量(單輸出模型),張量列表,或一個映射輸出名稱到目標張量的字典。 - **kwargs: 當使用 Theano/CNTK 後端時,這些參數被傳入
K.function
。 當使用 TensorFlow 後端時,這些參數被傳遞到tf.Session.run
。 - ValueError: 如果
optimizer
,loss
,metrics
或sample_weight_mode
這些參數不合法。
後端函數:categorical_crossentropy
keras.backend.categorical_crossentropy(target, output, from_logits=False)
輸出張量與目標張量之間的分類交叉熵。
參數
- target: 與
output
尺寸相同的張量。 - output: 由 softmax 產生的張量 (除非
from_logits
爲 True, 在這種情況下output
應該是對數形式)。 - from_logits: 布爾值,
output
是 softmax 的結果, 還是對數形式的張量。
返回
輸出張量。