【问题标题】:How to use log_loss as metric in Keras?如何在 Keras 中使用 log_loss 作为指标?
【发布时间】:2016-05-07 03:21:31
【问题描述】:

我正在使用 Keras,我想使用 logloss 作为训练指标。如何将其传递到我的模型中?

我的代码如下:

model = Sequential()
model.add(Dense(output_dim=1000, input_dim=390, init='uniform'))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=500, input_dim=1000, init="lecun_uniform"))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=10, input_dim=300, init="lecun_uniform"))
model.add(Activation("sigmoid"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=200, input_dim=10, init="lecun_uniform"))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=100, input_dim=200, init ="glorot_normal"))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=50, input_dim=100, init ="he_normal"))
model.add(Activation("sigmoid"))
model.add(Dropout(0.5))
model.add(Dense(output_dim=2, input_dim=50, init = "normal"))
model.add(Activation("softmax"))
model.compile(loss='binary_crossentropy',optimizer='rmsprop', metrics=['accuracy'])

model.fit(train.values, y1,  nb_epoch=10,
          batch_size=50000, verbose=2,validation_split=0.3, class_weight={1:0.96, 0:0.04})


proba = model.predict_proba(train.values)
log_loss(y, proba[:,1])

如何通过 log_loss 代替准确度?

【问题讨论】:

    标签: python-2.7 keras


    【解决方案1】:

    您已经是:loss='binary_crossentropy' 指定您的模型应该优化二进制分类的日志损失。 metrics=['accuracy'] 指定要打印准确率,但默认也会打印日志丢失。

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 2018-01-20
      • 1970-01-01
      • 2019-09-17
      • 2017-09-08
      • 2020-06-09
      • 2017-10-02
      • 2019-09-14
      • 2021-07-16
      相关资源
      最近更新 更多