2016-11-30 175 views
0

我正在關注一些Keras教程,並且我瞭解model.compile方法會創建一個模型並採用'metrics'參數來定義在培訓期間用於評估的指標測試。Keras model.compile:要通過模型評估的指標

compile(self, optimizer, loss, metrics=[], sample_weight_mode=None) 

我遵循的教程通常使用「metrics = ['accuracy']」。我想使用其他指標,如fmeasure,並閱讀https://keras.io/metrics/我知道有很多選擇。但我不知道如何將它們傳遞給編譯方法?

例如:

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['fmeasure']) 

將產生一個錯誤,說沒有這樣的度量。

任何建議高度讚賞

感謝

+0

什麼是您的Keras版本? –

+0

只是升級到最新的1.1.2,它的工作原理。謝謝 – Ziqi

回答

2

您可以提供兩種度量類型。
首先是由keras提供的一個,你可以找到here你在單引號像「美」提供,或者也可以這樣定義

from keras import metrics 
model.compile(loss='mean_squared_error', 
       optimizer='sgd', 
       metrics=[metrics.mae, metrics.categorical_accuracy]) \\or like 
       metrics=['mae', 'categorical_accuracy'] 

二是這樣的

import keras.backend as K 

def mean_pred(y_true, y_pred): 
    return K.mean(y_pred) 

model.compile(optimizer='rmsprop', 
       loss='binary_crossentropy', 
       metrics=['accuracy', mean_pred]) 
定義指標

這裏mean_pred是自定義指標。查看定義已有指標和自定義指標的區別。所以fmeasure不容易獲得。您必須將其定義爲自定義功能。