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