我试图用numpy而不是tensorflow来计算keras度量。
由于您通常不需要通过纯度量的梯度流,因此可以用numpy计算度量。
我延伸 tf.keras.metrics.Metrics
并覆盖了 update_state()
方法。好了,我明白了 y_true
及 y_pred
as类型 tensorflow.python.framework.ops.Tensor
有型 (None, 64, 64, 64, 6)
不幸的是,我无法将Tensor转换为numpy数组。我认为这是因为度量是预编译的,因此还没有可用的值(这就是为什么第一个形状是none)?
我试着用 y_true.eval()
, y_true.numpy()
,提供一个会话,例如。, y_true.eval(session=session)
具有 session=tf.compat.v1.Session()
或 tf.compat.v1.get_default_session()
-没有一个奏效。
如何计算单位为numpy的度量?不幸的是,我不能仅仅使用tensorflow函数重新实现所有numpy函数,因为我想使用特定的包。
我正在使用 tensorflow 2.5, keras 2.4.3
1条答案
按热度按时间5uzkadbs1#
将函数 Package 在
tf.py_function
https://www.tensorflow.org/api_docs/python/tf/py_functionkeras希望事先构建一个图,但numpy要求计算非常紧迫。
py_function
允许稍后在实际值可用时进行计算。