[英]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.