簡體   English   中英

ValueError:未知度量 function:TP_count

[英]ValueError: Unknown metric function : TP_count

我在嘗試為我的項目目的構建 BGRU model 時遇到這種 ValueError。 請讓我知道為什么會發生這種類型的錯誤。 部分代碼如下所示:

def build_model(maxlen, vector_dim, layers, dropout):
    print('Build model...')
    model = Sequential()

    model.add(Masking(mask_value=0.0, input_shape=(maxlen, vector_dim)))

    for i in range(1, layers):
        model.add(Bidirectional(GRU(units=256, activation='tanh', recurrent_activation='hard_sigmoid', return_sequences=True)))
        model.add(Dropout(dropout))

    model.add(Bidirectional(GRU(units=256, activation='tanh', recurrent_activation='hard_sigmoid')))
    model.add(Dropout(dropout))

    model.add(Dense(1, activation='sigmoid'))

    model.compile(loss='binary_crossentropy', optimizer='adamax', metrics=['TP_count', 'FP_count', 'FN_count', 'precision', 'recall', 'fbeta_score'])

    model.summary()

    return model
    def main(traindataSet_path, testdataSet_path, realtestpath, weightpath, resultpath, batch_size, maxlen, vector_dim, layers, dropout):
        print("Loading data...")

    model = build_model(maxlen, vector_dim, layers, dropout)

the error occuring is shown as below :

    Using TensorFlow backend.
    Loading data...
    Build model...
    Traceback (most recent call last):
      File "bgru.py", line 220, in <module>
        main(traindataSetPath, testdataSetPath, realtestdataSetPath, weightPath, resultPath, batchSize, maxLen, vectorDim, layers, dropout)
      File "bgru.py", line 51, in main
        model = build_model(maxlen, vector_dim, layers, dropout)
      File "bgru.py", line 41, in build_model
        model.compile(loss='binary_crossentropy', optimizer='adamax', metrics=['TP_count', 'FP_count', 'FN_count', 'precision', 'recall', 'fbeta_score'])
      File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 439, in compile
        handle_metrics(output_metrics)
      File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 396, in handle_metrics
        metric_fn = metrics_module.get(metric)
      File "/usr/local/lib/python2.7/dist-packages/keras/metrics.py", line 75, in get
        return deserialize(str(identifier))
      File "/usr/local/lib/python2.7/dist-packages/keras/metrics.py", line 67, in deserialize
        printable_module_name='metric function')
      File "/usr/local/lib/python2.7/dist-packages/keras/utils/generic_utils.py", line 165, in deserialize_keras_object
        ':' + function_name)
    ValueError: Unknown metric function:TP_count

我怎么能改變這個錯誤?

錯誤很明顯,您使用的是不存在的未記錄指標。

def build_model(maxlen, vector_dim, layers, dropout):
    print('Build model...')
    model = Sequential()

    model.add(Masking(mask_value=0.0, input_shape=(maxlen, vector_dim)))

    for i in range(1, layers):
        model.add(Bidirectional(GRU(units=256, activation='tanh', recurrent_activation='hard_sigmoid', return_sequences=True)))
        model.add(Dropout(dropout))

    model.add(Bidirectional(GRU(units=256, activation='tanh', recurrent_activation='hard_sigmoid')))
    model.add(Dropout(dropout))

    model.add(Dense(1, activation='sigmoid'))

    model.compile(loss='binary_crossentropy', optimizer='adamax', metrics=['accuracy', 'mae'])

    model.summary()

    return model

以下是可用指標列表: https://keras.io/metrics/

您也可以創建自己的指標,但它們不會在 go 內部編譯 function 作為字符串列表,而只需傳遞 function 名稱。


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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM