Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自定义召回指标给出错误结果且未更新-tensorflow_Python_Tensorflow_Machine Learning - Fatal编程技术网

Python 自定义召回指标给出错误结果且未更新-tensorflow

Python 自定义召回指标给出错误结果且未更新-tensorflow,python,tensorflow,machine-learning,Python,Tensorflow,Machine Learning,我想在tensorflow中实现一些简单的自定义指标。 作为第一步,我试图通过密切遵循中的CategoricalTruePositives示例来实现通常的回忆。主要区别在于result()方法 代码运行正常,但记录的度量值存在严重问题:在整个培训过程中,它的值(错误)为1.0 下面是我的代码 (注意:虽然我没有使用真阴性和假阳性,但它们并不是错误地存在的:我打算稍后使用它们。) 类别类别召回(度量): 定义初始化(self,name=“categorical\u recall”**kwargs)

我想在tensorflow中实现一些简单的自定义指标。 作为第一步,我试图通过密切遵循中的
CategoricalTruePositives
示例来实现通常的回忆。主要区别在于
result()
方法

代码运行正常,但记录的度量值存在严重问题:在整个培训过程中,它的值(错误)为
1.0

下面是我的代码

(注意:虽然我没有使用真阴性和假阳性,但它们并不是错误地存在的:我打算稍后使用它们。)

类别类别召回(度量):
定义初始化(self,name=“categorical\u recall”**kwargs):
超级(分类回忆,自我)。\uuuuu初始化(name=name,**kwargs)
self.true\u positives=self.add\u weight(name=“ctp”,initializer=“zeros”)
self.true\u negatives=self.add\u weight(name=“ctn”,initializer=“zeros”)
self.false\u positives=self.add\u weight(name=“cfp”,initializer=“zeros”)
self.false_negations=self.add_weight(name=“cfn”,initializer=“zeros”)
def更新状态(自身、y_真、y_pred、样本重量=无):
y_-true=tf.cast(y_-true,tf.bool)
y_pred=tf.cast(y_pred,tf.bool)
#真正的积极因素
值=tf.logical_和(tf.equal(y_真,真),tf.equal(y_pred,真))
值=tf.cast(值“float32”)
self.true\u positives.assign\u add(tf.reduce\u sum(value))
#真正的否定
值=tf.logical_和(tf.equal(y_真,假),tf.equal(y_pred,假))
值=tf.cast(值“float32”)
self.true\u negatives.assign\u add(tf.reduce\u sum(value))
#假阳性
值=tf.logical_和(tf.equal(y_真,假),tf.equal(y_pred,真))
值=tf.cast(值“float32”)
self.false\u posities.assign\u add(tf.reduce\u sum(value))
#假阴性
值=tf.logical_和(tf.equal(y_真,真),tf.equal(y_pred,假))
值=tf.cast(值“float32”)
自我。错误否定。赋值添加(tf。减少总和(值))
def结果(自我):
返回tf.math.truediv(self.true\u正值,(self.true\u正值+self.false\u负值))
def复位_状态(自身):
#度量的状态将在每个历元开始时重置。
自.真\正.赋值(0.0)
self.true\u否定。赋值(0.0)
自.假阳性.赋值(0.0)
自我.假阴性.赋值(0.0)
感谢您的帮助