1. keras中使用loss
# 损失函数(或称目标函数、优化评分函数)是编译模型时所需的两个参数之一:
#你可以传递一个现有的损失函数名,
model.compile(loss='mean_squared_error', optimizer='sgd')
# 或者一个TensorFlow/Theano符号函数,有以下两个参数:
# y_true: 真实标签. TensorFlow/Theano张量。
# y_pred: 预测值. TensorFlow/Theano张量,其shape与y_true相同。
# 该符号函数为每个数据点返回一个标量,
from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
2. keras官方支持的
-
mean_squared_error
-
mean_absolute_error
-
mean_absolute_percentage_error
-
mean_squared_logarithmic_error
-
squared_hinge
-
hinge
-
categorical_hinge
-
logcosh
- 预测误差的双曲余弦的对数。对于小的
x
,log(cosh(x))
近似等于(x ** 2) / 2
。对于大的x
,近似于abs(x) - log(2)
。这表示logcosh
与均方误差大致相同,但是不会受到偶尔疯狂的错误预测的强烈影响。
- 预测误差的双曲余弦的对数。对于小的
-
categorical_crossentropy
-
注意: 当使用
categorical_crossentropy
损失时,你的目标值应该是分类格式 (即,如果你有10个类,每个样本的目标值应该是一个10维的向量,这个向量除了表示类别的那个索引为1,其他均为0,即one-hot编码)。 为了将 整数目标值 转换为 分类目标值,你可以使用Keras实用函数to_categorical
:from keras.utils.np_utils import to_categorical categorical_labels = to_categorical(int_labels, num_classes=None) # 转化为one-hot encoding
-
-
sparse_categorical_crossentropy
-
binary_crossentropy
-
kullback_leibler_divergence
-
poisson
-
cosine_proximity