当我想要计算灵敏度和特异性时,Keras中的错误

当我想要计算灵敏度和特异性时,Keras中的错误,keras,conv-neural-network,metrics,Keras,Conv Neural Network,Metrics,我正在写一个基于CNN的两种图像分类代码。 我想测量我工作的准确性、敏感性和特异性,但不幸的是,我有以下错误。 你能告诉我我的问题是什么吗 m = tf.keras.metrics.SensitivityAtSpecificity(0.5) model.compile(optimizer='adam', loss=keras.losses.binary_crossentropy, metrics=['accuracy',m]) 错误: Traceback (most recent call l

我正在写一个基于CNN的两种图像分类代码。 我想测量我工作的准确性、敏感性和特异性,但不幸的是,我有以下错误。 你能告诉我我的问题是什么吗

m = tf.keras.metrics.SensitivityAtSpecificity(0.5)
model.compile(optimizer='adam', loss=keras.losses.binary_crossentropy, metrics=['accuracy',m])
错误:

Traceback (most recent call last):
  File "C:/Users/Hamed/PycharmProjects/Deep Learning/CNN.py", line 77, in <module>
    validation_steps = 1600//batch_size)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\engine\training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\engine\training_generator.py", line 217, in fit_generator
    class_weight=class_weight)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\engine\training.py", line 1217, in train_on_batch
    outputs = self.train_function(ins)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\backend\tensorflow_backend.py", line 2715, in __call__
    return self._call(inputs)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\keras\backend\tensorflow_backend.py", line 2675, in _call
    fetched = self._callable_fn(*array_vals)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
    run_metadata_ptr)
  File "C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.NotFoundError: Resource localhost/false_negatives/class tensorflow::Var does not exist.
     [[{{node metrics/sensitivity_at_specificity/AssignAddVariableOp_1}}]]
     [[{{node metrics/sensitivity_at_specificity/Mean}}]]
回溯(最近一次呼叫最后一次):
文件“C:/Users/Hamed/PycharmProjects/Deep Learning/CNN.py”,第77行,在
验证步骤=1600//批量大小)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\legacy\interfaces.py”,第91行,在包装器中
返回函数(*args,**kwargs)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\engine\training.py”,第1418行,在fit\U生成器中
初始_历元=初始_历元)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\engine\training\u generator.py”,第217行,在fit\u generator中
等级重量=等级重量)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\engine\training.py”,第1217行,在批处理的列中
输出=自列车功能(ins)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\backend\tensorflow\u backend.py”,第2715行,在调用中__
返回自调用(输入)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\keras\backend\tensorflow\u backend.py”,第2675行,在\u调用中
fetched=self.\u可调用\u fn(*array\u vals)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\tensorflow\python\client\session.py”,第1439行,在\uu调用中__
运行_元数据_ptr)
文件“C:\Users\Hamed\Anaconda3\envs\tensorflowGPU\lib\site packages\tensorflow\python\framework\errors\u impl.py”,第528行,在退出中__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors\u impl.NotFoundError:Resource localhost/false\u negatives/class tensorflow::Var不存在。
[{{node metrics/sensitivity_at_specificity/AssignAddVariableOp_1}}]]
[{{node metrics/sensitivity_at_specification/Mean}}]]

指标tf.keras.metrics.sensitivityAtSpecification计算给定特异性下的敏感性

不幸的是,敏感度和特异性指标尚未包含在KERA中,因此您必须按照指定编写自己的自定义指标

以下是一种简单的方法来计算在中发现的特异性


您可以在上获得Keras实施的特异性和敏感性。

度量tf.Keras.metrics.sensitivityAtSpecification计算给定特异性的敏感性

不幸的是,敏感度和特异性指标尚未包含在KERA中,因此您必须按照指定编写自己的自定义指标

以下是一种简单的方法来计算在中发现的特异性


您可以在上获得Keras实现的特异性和敏感性。

如果有帮助,您可以尝试一下

import keras

model.compile(optimizer="adam",
              loss="categorical_crossentropy",
              metrics=[keras.metrics.Precision(), keras.metrics.Recall(), keras.metrics.SpecificityAtSensitivity(0.5), keras.metrics.SensitivityAtSpecificity(0.5), 'accuracy'])

你可以试试这个,如果有帮助的话

import keras

model.compile(optimizer="adam",
              loss="categorical_crossentropy",
              metrics=[keras.metrics.Precision(), keras.metrics.Recall(), keras.metrics.SpecificityAtSensitivity(0.5), keras.metrics.SensitivityAtSpecificity(0.5), 'accuracy'])