損失函數loss:該參數為模型試圖最小化的目標函數,它可為預定義的損失函數名,如categorical_crossentropy、mse,也可以為一個損失函數。詳情見losses
可用的損失目標函數:
mean_squared_error或mse
mean_absolute_error或mae
mean_absolute_percentage_error或mape
mean_squared_logarithmic_error或msle
squared_hinge
hinge
categorical_hinge
binary_crossentropy
(亦稱作對數損失,logloss)
logcosh
categorical_crossentropy:亦稱作多類的對數損失,注意使用該目標函數時,需要將標簽轉化為形如(nb_samples, nb_classes)的二值序列
sparse_categorical_crossentrop:如上,但接受稀疏標簽。注意,使用該函數時仍然需要你的標簽與輸出值的維度相同,你可能需要在標簽數據上增加一個維度:np.expand_dims(y,-1)
kullback_leibler_divergence:從預測值概率分布Q到真值概率分布P的信息增益,用以度量兩個分布的差異.
poisson:即(predictions - targets * log(predictions))的均值
cosine_proximity:即預測值與真實標簽的余弦距離平均值的相反數
補充知識:keras.model.compile() 自定義損失函數注意點
基本用法
model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])
注意
loss后類似'binary_crossentropy'、'mse'等代稱
loss為函數名稱的時候,不帶括號
函數參數必須為(y_true, y_pred, **kwards)的格式
不能直接使用tf.nn.sigmoid_cross_entropy_with_logits等函數,因為其參數格式為(labels=None,
logits=None),需要指定labels=、logits=這兩個參數
以上這篇keras:model.compile損失函數的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/weixin_41770169/article/details/80184115